일단 쓰고보자

[los] orge 본문

모의해킹/Lord of SQLInjection

[los] orge

휘갈기갈기 2020. 4. 7. 10:40

#문제

#문제 의도

- 입력 값 필터링 규칙 (pw) // darkelf 문제와 동일

if(preg_match('/prob|_|\.|\(\)/i'$_GET[pw])) exit("No Hack ~_~"); 
if(
preg_match('/or|and/i'$_GET[pw])) exit("HeHe"); 

  1) prob

  2) _

  3) .

  4) ()

  5) or

  6) and

- 목표

필터링을 사용하지 않거나 우회하여 쿼리 결과 id가 admin이면 해결

 

#확인사항

- prob, _ 문자는 테이블 접근하지 못하도록 걸어둔 것 같고, ()는 특정 함수 쓰지 못하게 걸어둔 것 같다.

- where 절에서 항상 사용하는 or 와 and 문자가 필터링 되어있다.

- 이 두 조건 연산자를 대신할 수 있는 방법을 알아보자. (생각보다 간단하게 문자로 바꾸면 됨)

  1) or = ||

  2) and = &&

- Blind Injection을 위한 기본 구문과 조건문 2가지 // orc 문제에서 Blind Injection을 다뤘다.

  pw='123' || [조건문]#

  1) length(pw)=n // n=[pw 문자열 길이]

  2) ascii(substr(pw,n,1))=m // m=[pw n번째 문자의 ascii 코드]

  ※ 조건문이 참이라면 "Hello admin"을 출력해 줄 것이고, 거짓이면 아무것도 출력하지 않을 것이다.

  ※ 위 처럼 일부 노가다가 필요한 상황이 있으므로, 웹 프록시 도구 Burp Suite 기능인 Intruder를 이용하도록 하자.

'모의해킹 > Lord of SQLInjection' 카테고리의 다른 글

[los] vampire  (0) 2020.04.07
[los] troll  (0) 2020.04.07
[los] darkelf  (0) 2020.04.07
[los] wolfman  (0) 2020.04.07
[los] orc  (0) 2020.04.06