반응형
7번 문제를 들어와 auth를 클릭해보면 접근이 거부된 것을 확인할 수 있습니다.
그렇다면, 소스의 내용을 확인해보면,
쿼리의 결과값이 2가 되면 문제가 해결되는 것을 확인할 수 있다.
if(preg_match("/2|-|\+|from|_|=|\\s|\*|\//i",$go)) exit("Access Denied!"); 이 부분을 보면 if문의 preg_match함수의 정규표현식에 포함된 2, -, +, from, _, =, \s, *, \등 문자열이 포함되어있으면 Access Denied! 를 출력하고있다.
그럼 정규표현식에 포함된 문자열을 우회하여 쿼리의 결과값을 2로 만들면 해결할 수 있게된다.
문제를 Union select구문을 사용하여 강제로 2를 주입해야한다.
rand 경우의 수가 5가지 있으므로 반복적으로 공격코드를 URL에 입력하여 공격하게되면 문제를 해결할 수 있게된다.
$go : 0)union(select(char(50))
공격코드 : select lv from chall7 where lv=(0)union(select(char(50))
감사합니다.
반응형
'Hacking > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 9번 문제풀이 (0) | 2020.11.07 |
---|---|
Webhacking.kr 8번 문제풀이 (0) | 2020.11.03 |
Webhacking.kr 6번 문제풀이 (0) | 2020.06.13 |
Webhacking.kr 5번 문제풀이 (0) | 2020.06.10 |
Webhacking.kr 4번 문제풀이 (0) | 2020.06.08 |