모의해킹/Lord of SQLInjection
[los] darkelf
휘갈기갈기
2020. 4. 7. 09:56
#문제

#문제 의도
- 입력 값 필터링 규칙 (pw)
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 = &&
