70번째 글. 1. 워드프레스란? 간단하게 워드프레스에 대해서 설명하면 매우 유명한 CMS(Content Management System)으로 전 세계 웹사이트 중 3분의 1을 차지한다고 한다. 워드프레스는 블로그, 포럼, 프로젝트 관리, 전자상거래 등 많은 것들을 호스팅 할 수 있게 도움을 준다. 또한 많은 플러그인과 지속적인 업데이트로 인기가 많다. 2. 시나리오 You have been contracted to perform an external penetration test against the company INLANEFREIGHT that is hosting one of their main public-facing websites on WordPress. 3. 인터페이스 이렇게 생긴 홈페이지가..
69번째 글. Skill Assessement 페이지에서 시나리오가 있었는데 여기서 언급하지 않는 문제들은 이 모듈을 잘 따라왔으면 쉽게 풀 수 있는 문제들이었다. 여기서는 푸는데 조금 헤맨 마지막 문제만 다루도록 하겠다. 1. 문제 쉽게 말해서 NTDS.dit파일 내에있는 NTLM password hash들 중에서 가장 많이 사용된 것을 크랙 하면 된다. 또한 Hashcat_NTDS.zip 파일을 하나 던져준다. 하지만 이 모듈에서 NTDS.dit에 대한 설명은 없다. 빠르게 힌트를 확인하자. 주저리주저리.. 대충 NtdsAudit 이나 DPAT를 사용해 보라고 한다. 나는 DPAT를 사용하였다. 2. What is NTDS.dit? 간략하게 설명하면 Domain Controller의 NTDS.dit은..
68번째 글. 1. 코드 분석 지금부터 올라오는 문제들은 다 modsecurity(WAF)가 걸려있다. WAF가 걸려있어도 쉽게 우회하여 풀 수 있는 문제들은 writeup을 따로 올리지 않았다. union select를 사용하라고 나와있다. 2. Exploit id=\&pw= union select 'first', 'second'%23(안 댐) 위처럼 계속해서 쓰던 방법으로 백 슬래시를 이용하여 우회하는 방법이 먹히지 않았다. https://github.com/SpiderLabs/owasp-modsecurity-crs/issues/1181 Bypass the latest CRS v3.1.0 rules of SQL injection · Issue #1181 · SpiderLabs/owasp-modsecu..
보호되어 있는 글입니다.
66번째 글. 1. 코드 분석 앞 문제와 똑같지만 문자열 'ace'가 필터링돼있기 때문에 replace() 함수를 쓰지 못할 것이다. 2. Exploit information_schema 데이터베이스에 processlist라는 테이블이 있다. 이 테이블을 살펴보면 info라는 컬럼에 바로 직전에 질의한 쿼리문이 저장되어있다. 이 테이블과 substr을 이용하여 result에 담길 pw값과 쿼리 스트링을 통한 pw값을 똑같게 만들 수 있을 것 같다. ?pw=' union select substr(info, 38, 72) from information_schema.processlist%23 substr() 함수에서 3번째 인자를 안 줘도 될 것 같았지만 쿼리 맨 마지막에 #옆에 single quote가 있으..
65번째 글. 1. 코드 분석 뭔가 딱 보기에 풀었던 문제들과 매우 흡사하다. 온전한 pw값을 찾으면 될 거 같다. 2. Exploit 하지만 역시 쉽게 풀리지 않았다. ?pw=' or 1=1%23을 넣었을 때 pw가 아무것도 출력되지 않았다. 그 말은 즉슨 테이블에 값이 하나도 없다는 뜻이다.... 이렇게 union을 섞어서 값이 없음을 확인하였다. 그렇다면 무슨 수로 쿼리 스트링 형식으로 준 값과 db의 결괏값을 일치시킬까? 역시 답은 구글링 Quine Query를 이용하는 것이다. Quine은 메타 프로그램의 일종이며 입력 없이 자기 자신의 소스코드를 출력하는 프로그램을 뜻한다. (자세한 이해는 Reference에 걸어두었다. 친절하게 설명해주셔서 쉽게 이해할 수 있었다.) Reference htt..
64번째 글. 1. 코드 분석 쿼리 스트링을 통해서 joinemail에 값을 전달하면 no가 0이고 내 아이피 주소가 함께 DB에 입력된다. no=1 또는 ip가 내 아이피이면 테이블에 데이터가 출력된다. no=1인 email의 주소를 알게 되면 문제가 풀리게 된다. 2. Exploit 일단 괄호를 필터링하지 않으므로 우리는 원하는 값을 insert 할 수 있다. 또한 이전 문제들과 다르게 DML이 필터링 되지 않기 때문에 서브 쿼리를 통해서 no=1의 email을 가져와서 내 아이피만 넣어주면 쉽게 풀 수 있다. ?joinmail=asd1234'), (2,'내 아이피',(select email from prob_phantom as p where no=1))%23 여기서 주의할 것은 같은 테이블을 참조하..
63번째 글. 1. 코드 분석 union과 괄호를 쓸 수 없었다. 쿼리를 실행하고 에러가 발생하면 'error'를 출력한다. admin의 pw값을 찾으면 문제가 풀리게 된다. 2. Exploit 일단 괄호가 필터링되기 때문에 주요한 함수를 쓸 수 없다. 또한 union도 막혔다... 에러를 발생시키는 것은 지금껏 많이 했기 때문에 어렵지 않지만 문제는 어떻게 함수와 union을 안 쓰고 우회하느냐 인데 결국은 구글링의 도움으로 case문을 찾았다. ?pw=' or case when id='admin' and pw < 특정값 then 9e307*2 else 1 end%23 이렇게 주게되면 when의 조건이 참이면 9e307*2을 할당해 에러를 발생시킨다.정확한 크기비교를 위해서 hex값을 이용해서 특정값을..
- Total
- Today
- Yesterday
- 웹해킹
- CSS Injection
- 드림핵
- WebHacking
- htb
- dreamhack web-alasql
- hackerfactory
- htb Windows Fundametals
- csp bypass
- 해커팩토리
- 드림핵 padding oracle
- DreamHack
- xxe injection
- dreamhack Relative Path Overwrite
- 드림핵 Relative Path Overwrite
- SQL Injection
- Windows Fundamentals
- blind injection
- hack the box
- webhacking.kr
- LFI vulnerability
- dreamhack padding oracle
- dreamhack DOM XSS
- 드림핵 DOM XSS
- php LFI
- alasql
- wargame
- dreamhack CSS Injection
- Lord of SQL injection
- csp
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |