51번째 글. 1. 코드 분석 id, pw 파라미터에 대해서 single quote를 필터링하고 있다. 2. Exploit 백슬래시를 쓸 수 있으면 escape를 이용할 수 있다. ?id=\&pw= or id="admin"%23 위처럼 주게 되면 select id from prob_succubus where id='\' and pw=' or id="admin"#' 두번째 single quote가 escape되고 id의 첫 번째 single quote와 pw의 첫 번째 single quote로 감싸 지게 되어서 빨간색 부분이 id의 값으로 들어가게 된다.
50번째 글. 1. 코드 분석 일단 single quote가 필터링되어있다. 2. Exploit single quote를 bypass하려고 시도해봤지만 전혀 되질 않았다.. 그러던 중 구글링을 통해 like를 쓰는 경우 패턴 매칭을 통해서 쿼리의 결과를 얻어낼 수 있다는 사실을 알게 되었다. 예를 들어 pw가 15304이고 쿼리가 select id from table where pw like '1%'라 하면 pw가 1로 시작하는 것을 검색하겠다는 의미이다. 이런 점을 이용해 코드를 짜면 다음과 같다. import requests import string sess = requests.session() headers = {'Cookie': 'PHPSESSID=YOURSESSID'} # password_len..
마흔아홉 번째 글. 1. 코드 분석 single quote, substr, ascii, =, or, and, whitespace, like, 0x... 많은 것들을 필터링하고 있었다. 이 문제 역시 온전한 pw값을 입력해야 풀린다. 2. Exploit 공백 -> %0a or -> || and -> %26%26(이 문제에서는 &&를 URL인코딩을 해줘야 된다.) substr -> mid() ascii -> hex() =,like -> in() ?no=1000%0a||%0aid%0ain(char(97,100,109,105,110))%0a%26%26%0a1%0ain(if(hex(mid(pw,인덱스,1))in(hex(비교값)),1,0))%23 점점 길어진다... import requests sess = requ..
마흔여덟 번째 글. 1. 코드 분석 single qutoe, substr, ascii, = 를 필터링하고 있었으며 admin의 pw를 찾아야지 문제가 풀린다. 2. Exploit single quote가 필터링되고 있고 파라미터 no가 single quote로 감싸져 있지 않기 때문에 이쪽을 이용해야 한다. substr -> mid ascii -> ord = -> like ?no=1000 or id like(char(97,100,109,105,110)) and 1 like(if(ord(mid(pw,인덱스,1))like(비교값),1,0))%23 위에 처럼 사용하면 된다. 문제를 처음 풀 때 약간 이상했다. 분명 pw의 길이는 8글자가 맞는데 계속 7자리만 나오는 것이다... 확인해보니 우연한 건지 의도인지..
마흔일곱 번째 글. 1. 코드 분석 전에 풀었던 문제처럼 Blind SQL injection을 이용해서 pw값을 찾아야 문제가 풀린다. 이번에는 or, and, substr(, =를 필터링하고 있었다. 2. Exploit or -> || and -> && substr -> mid = -> like ?pw=' or 1 like(if(ascii(mid(pw,인덱스,1))like(비교값),1,0))%23 substr() 함수와 동일한 mid() 함수로 대체하였고 아스키코드로 변환하는 함수도 처음에 ord()를 썼었는데 'or'가 필터링되면서 계속 걸렸었다. 그렇기 때문에 ascii() 함수로 대체하였다. 최종적으로 아래와 같이 전에 쓰던 코드를 변경해 주면 된다. import requests sess = re..
마흔여섯 번째 글. 1. 코드 분석 str_replace() 함수를 이용해서 파라미터에 문자열 'admin'이 존재하면 ''로 치환한다. 2. exploit str_replace()함수는 지정 문자열을 찾은 뒤 설정한 문자열로 치환을 하고 그것을 반환한다. ?id=adadminmin 중간에 문자열 'admin'이 ''로 치환되고 최종적으로 admin이 되므로 간단하게 우회할 수 있다. 생각보다 술술 풀려서 글이 밀려있다;; 그래도 안쓸 수는 없으니까 열심히 쓴다.
- Total
- Today
- Yesterday
- alasql
- dreamhack web-alasql
- dreamhack DOM XSS
- 드림핵
- blind injection
- hack the box
- dreamhack padding oracle
- csp bypass
- 드림핵 Relative Path Overwrite
- htb
- LFI vulnerability
- 웹해킹
- wargame
- Windows Fundamentals
- hackerfactory
- Lord of SQL injection
- dreamhack Relative Path Overwrite
- php LFI
- webhacking.kr
- 드림핵 DOM XSS
- SQL Injection
- WebHacking
- 해커팩토리
- xxe injection
- htb Windows Fundametals
- 드림핵 padding oracle
- dreamhack CSS Injection
- CSS Injection
- csp
- DreamHack
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |