반응형
webhacking.kr old 07번 문제풀이(Writeup)
문제를 들어가면 위와 같이 출력된다.
코드를 확인했다. 가장 눈에 띄는 건 preg_match를 통해 몇 가지 문자가 필터링되고 있다. 그리고 mysql_query문이 나와있고 마지막 elseif로 가면 문제가 해결된다.
결론은 go 자리에 2를 넣어주면 해결될 것으로 보이는데, 2는 필터링되고 있고 +, -, * 도 필터링되기에 다른 방법으로 넣어줘야 할 것으로 보인다.
먼저 이것저것 실험을 했다. 괄호가 필터링이 안되고 char, ascii 등이 안되는 걸 보니 아스키코드로 2를 전달해도 좋을 것 같다. 그래서 union을 통해 var=0인 것과 2인 것을 함께 입력해보았다.
select lv from chall7 where lv=($go)
select lv from chall7 where lv=(0)union(select(char(50)))
0을 먼저 주고 다음 union명령을 통해 ascii코드로 2를 넘겨준다.
필자는 랜덤 경우 중 괄호가 하나일 때를 대상으로 했기에 랜덤에 걸릴 때까지 새로고침을 했고 해결하였다.
728x90
'웹해킹 > webhacking.kr' 카테고리의 다른 글
webhacking.kr old 10번 문제풀이(Writeup) (0) | 2022.10.12 |
---|---|
webhacking.kr old 08번 문제풀이(Writeup). PHP getenv() 함수 설명 (0) | 2022.10.11 |
webhacking.kr old 05번 문제풀이(Writeup). 디렉터리 리스팅 취약점 설명 및 응용 (0) | 2022.10.09 |
webhacking.kr old 22번 문제풀이(Writeup) (0) | 2022.10.08 |
webhacking.kr old 04번 문제풀이(Writeup) (1) | 2022.10.07 |