-
Challenge 7웹해킹/Webhacking.kr 2023. 4. 12. 18:09
오늘도 시작페이지부터 시작
뷰소스를 눌렀을때 나오는 코드 뭐가 줠라들 많다
하나씪 천천히 봐봅시다
preg_match 필터링인건 다들 아시죠
2, -, +, from, _, =, \s(이거맞나?), *, \ 를 필터링 합니다 (맞나?)
아무튼 우리가 val 파라미터에 전달해준 값이 $go로 들어가는데 필터링에 걸리면 Access Denied를 보게된다
여긴 처음에 뭔소린가했는데 그냥 저 5가지 select문중에 하나가 랜덤으로 실행된다고 보면된다
그리고 쿼리가 실패하면 nice try! 문구를 보게된다
이렇게
이제 문제를 어떻게해야 푸는지 알아야겠죠
위의 1일때 값은 볼거없고 쿼리결과가 2일때 문제가 풀리게 됩니다
고로 우리가 할 일은 쿼리 결과가 2가 나오게 하는것
덧셈뺼셈 및 뭐시기들 다 안되니까 나머지값을 구하는 8%3을 넣어본다
근데 안대요, 나로서는 이해할 수 없는 결과이기에 검색을 했더니 다들 이런 방법을 시도해봤더라
난 내가 똑똑한줄 알았는데 아닌갑다
결론은 테이블에 2가 없어서 제대로 조건을 맞춰도 조회할 수가 없는 것이었다.
하지만 테이블에 없어도 조회결과로 출력되게 할 수 있는 방법이 있다
UNION SELECT 다
뒤의 유니온셀렉트를 붙이게 되면 쿼리결과가 합쳐지므로 앞의 테이블에 없는 내용이어도 함께
결과로 출력되는 뭐 그런원리인갑다. 코런갑다하세요
수 많은 고민(검색아님)끝에 나온 결과물, 저 안에 char(50)은 모두 알겟지만 아스키2 이다
딱히 char50이 아니어도 아까 넣은 8%3 등 뭐든 2가 나오는 것 아무거나 넣어도된다
쿼리문에 넣으면 대충 저런식으로 돌아간다
바로 url에 발사해준다
여기서 이런점이 궁금할 수 있는데, 아까 5개의 쿼리중 랜덤으로 실행되는데 어떻게 맞추냐고 할 수 있다.
근데 5개중 랜덤으로 실행되는 것이니 그냥 5개중 아무거나에 맞게 넣어주고 새로고침을 줠라게누른다
그럼 풀린다
'웹해킹 > Webhacking.kr' 카테고리의 다른 글
Challenge 33 (0) 2023.04.14 Challenge 42 (0) 2023.04.14 Challenge 19 (0) 2023.04.07 Challenge 58 (0) 2023.04.06 Challenge 32 (0) 2023.04.06