Lord of SQLi | WebHacking.kr

Lord of SQLi(#8 troll)

Box Maker 2022. 12. 30. 15:13

8번문제의 php코드

1. 문제풀이

 

1) 코드 해석

  • 다음코드에서 보여지듯이 이번문제에서는 "admin"이라는 문자가 필터링 되어있는것을 볼 수 있다

if(preg_match("/admin/"$_GET[id])) exit("HeHe");

  • admin 문자만 우회하면 공격을 성공할수 있지만 그런 우회방법이 있을까 싶다

 

2) 문제 풀이

  • 저번에 풀었던(#3 goblin)문제에서 사용했던 스트링 우회기법으로 공격을 시도했지만 될리가 없다

공격 실패 화면

  • 도저히 방법을 모르겠어서 인터넷 검색을 해본결과 어이없게도 아주 사소한 부분을 놓치고 있었다
  • 당연히 막혀있을거라 생각했던 대소문자 구분을 하지 않고 있다는 점이다
  • 따라서 공격구문에 admin이 아닌 Admin 혹은 AdMin 이런식으로 공격하면 공격이 성공한다
  • 공격 시 삽입 구문: id=Admin
  • 공격 후 구문: https://los.rubiya.kr/chall/troll_05b5eb65d94daf81c42dd44136cb0063.php?id=Admin
  • 공격을 수행하면 결과적으로 SQL쿼리문에 다음과 같이 공격 시 삽입 구문이 대입되므로 공격이 성공한다.

select id from prob_troll where id='Admin'

 

공격 성공 화면