일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Lord of SQLInjection
- APKManager
- 투자
- SQL INJECTION
- 안드로이드
- 부동산분석
- 부동산
- ADB
- Los
- Mid()
- jeb
- 월세
- 호갱노노
- 후킹
- 매물
- 프리다
- 아파트실거래가
- 블라인드 인젝션
- 모의해킹
- Frida
- 아파트
- NOX
- UnCrackable
- Blind Injection
- 전세
- 스마트폰
- 서울
- webhacking.kr
- 웹해킹
- 일기
- Today
- Total
일단 쓰고보자
[los] orge 본문
#문제
#문제 의도
- 입력 값 필터링 규칙 (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 |