web hacking
[Web Hacking] Thymeleaf SSTI
Thymeleaf SSTI HTML 삽입 미리보기할 수 없는 소스 Thymeleaf HTML 삽입 미리보기할 수 없는 소스 타임리프(Thymeleaf)는 Spring의 뷰 템플릿이다. 컨트롤러가 데이터를 전달하면 동적으로 화면을 구성할 수 있게 도와준다. SSTI를 알아보기 전에 Thymeleaf에 대해 알아보자 사용법 Thymeleaf를 사용할려면 xormdp th:text , th:fragment, th:block 등 과 같이 속성과 비슷하게 생긴 것이 온다. 표현식 변수 표현식 : ${} 선택 변수 표현식 : *{} 메시지 표현식 : #{} URL 표현식 : @{} 단편(Fragment) 표현식 : ~{} Thymeleaf SSTI HTML 삽입 미리보기할 수 없는 소스 Thymeleaf뿐만 아니라..
[Web Hacking] URL 구조
URL 구조 HTML 삽입 미리보기할 수 없는 소스 URL HTML 삽입 미리보기할 수 없는 소스 Scheme scheme은 Protocol을 의미한다(ftp, ssh, http, https..) file scheme도 있는데 file scheme은 소유자의 file을 찾기 위한 구조이다. file://host:port/path와 같은 형식으로 이루어져 있다. host:port를 생략하면 file:///path(local을 의미)와 같이 사용할 수 있다. User:Pass ssh를 접속할 때 @를 사용하여 사용자:[패스워드]@host 형식으로 주소를 지정한다. @앞의 부분을 username : password로 인식하고 @뒷 부분을 host로 인식한다. 이러한 특징으로 URL 필터링을 우회할 때도 사용된..
[Web Hacking] Flask Debugger PIN Exploit
Flask Debugger PIN Exploit HTML 삽입 미리보기할 수 없는 소스 Debugger PIN HTML 삽입 미리보기할 수 없는 소스 Flask에서 Debugger모드가 활성화되어 있을 때 어떠한 에러가 발생하면 에러를 보여주는 페이지가 나온다. 해당 페이지에서 콘솔을 실행시킬 수 있는데 콘솔을 실행시키려면 PIN이 필요하다. app.run(host='0.0.0.0', port=80, threaded=True, debug=True) Generate PIN PIN은 __init__.py에서 만들어지는데 machine-id , mac address 등 각각 컴퓨터마다 다른 값들을 이용해서 PIN을 만들기 때문에 예측하기는 불가능하다. __init__.py는 /usr/local/lib/pyth..
[Web Hacking] DNS rebinding
DNS rebinding HTML 삽입 미리보기할 수 없는 소스 DNS rebinding이란 HTML 삽입 미리보기할 수 없는 소스 DNS Rebinding은 공격자가 더미 dns서버를 구축하여 공격자의 dns질의를 가로채어 동일한 도메인 이름이지만 주소를 변조시키는 방법으로 내부 네트워크에 접근할 수 있다. 이는 SOP도 우회 되면서 내부 네트워크에 접근할 수 있는 SSRF공격의 한 종류이다. DNS rebinding 작동 원리 HTML 삽입 미리보기할 수 없는 소스 1. 희생자는 공격자가 만들어 놓은 DNS서버에 DNS를 질의를 한다. 2. 공격자 DNS서버는 처음에는 올바른 주소(공격자 IP)를 반환해주는데 TTL을 적게 설정한다. 3. 희생자는 TTL이 적은 값을 받았기 때문에 얼마 지나지 않아 ..
[Cheat Sheet] SSRF
SSRF 공격기법 HTML 삽입 미리보기할 수 없는 소스 localhost bypass HTML 삽입 미리보기할 수 없는 소스 http://2130706433/ = http://127.0.0.1 http://3232235521/ = http://192.168.0.1 http://3232235777/ = http://192.168.1.1 http://2852039166/ = http://169.254.169.254 http://127.0.0.1 http://0.0.0.0 http://localhost http://[::] http://0000::1 http://spoofed.burpcollaborator.net http://localtest.me http://localhost.hahwul.com http:..
[Web Hacking] Missconfiguration DBMS
Missconfiguration DBMS HTML 삽입 미리보기할 수 없는 소스 MySQL HTML 삽입 미리보기할 수 없는 소스 my.cnf MySQL은 mysql이라는 user의 권한으로 파일 관련된 작업을 수행한다. my.cnf 파일 안의 설정 값 secure_file_priv의 설정에 따라 load_file, into outfile을 실행할 수 있다. 파일에 대한 관련 작업을 할 때는 디렉터리 / 파일의 권한을 가지고 있어야 한다. select @@secure_file_priv; # 설정 값 조회 load_file 파일을 로드하는 함수 select load_file('/var/lib/mysql-files/tempfile'); lnto outfile 쿼리 값이나 변수를 파일에 쓸 수 있다. SELE..