일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL INJECTION
- 블라인드 인젝션
- 아파트
- 안드로이드
- Los
- 서울
- 웹해킹
- Mid()
- 후킹
- Lord of SQLInjection
- 모의해킹
- APKManager
- 전세
- ADB
- 스마트폰
- 부동산
- 아파트실거래가
- UnCrackable
- Frida
- 일기
- 투자
- NOX
- jeb
- 매물
- webhacking.kr
- 프리다
- Blind Injection
- 호갱노노
- 월세
- 부동산분석
- Today
- Total
목록모의해킹 (31)
일단 쓰고보자
#문제 #문제 의도 - 입력 값 필터링 규칙 (pw) if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/sleep|benchmark/i', $_GET[pw])) exit("HeHe"); 1) prob 2) _ 3) . 4) () 5) sleep 6) benchmark - 목표 필터링을 사용하지 않거나 우회하여 쿼리 결과가 존재하면 해결 #확인사항 - 문제 코드를 잘 보면 여느 블라인드 인젝션과는 다르게 Hello admin, Hello guest 등 쿼리 결과에 따라 참/거짓을 판별할 수 있는 문구를 출력해주지 않아서 다른 방법을 찾아봐야 한다. 우선 의심 드는 부분은 1) Time based SQL In..
#문제 #문제 의도 - 입력 값 필터링 규칙 (pw) if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 1) prob 2) _ 3) . 4) () - 목표 필터링 및 입력 값이 주석처리된 것을 우회하여 결과 값이 admin 이면 해결 #확인사항 - 이 문제의 관건은 # 주석을 우회해야한다는 것이다. 우선 기본적으로 주석의 특징을 알아봐야 우회할 수 있을 것 같다. 1) # : 한 줄 주석 처리 2) --(공백) : 한 줄 주석 처리 3) /**/ : /*와 */ 사이 내용 모두 주석처리 - 힌트라면 한 줄에 대한 주석을 처리한다는 내용이 되겠다. - 게다가 쿼리 내 개행문자는 쿼리결과에 영향을 주지 않는 것을 알 수 있다. (아래 표..
#문제 #문제 의도 - 입력 값 필터링 규칙 (pw) if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/regex|like/i', $_GET[pw])) exit("HeHe"); $_GET[pw] = addslashes($_GET[pw]); 1) prob 2) _ 3) . 4) () 5) regex 6) like 7) addslashes() - 목표 필터링 우회하여 블라인드 인젝션을 통해 admin 패스워드를 알아내자 #확인사항 - 기본적으로 제한했던 문자 외 regex와 like가 추가되었는데, regex는 왜 추가됐는지 잘 모르겠다 ㅎㅎ... - 필터링 문자에 싱글쿼터(')나 더블쿼터(") 등 다 열려있..
#문제 #문제 의도 - 입력 값 필터링 규칙 (pw) if(preg_match('/prob|_|\.|\(\)|#|-/i', $_GET[pw])) exit("No Hack ~_~"); if(strlen($_GET[pw])>6) exit("No Hack ~_~"); 1) prob 2) _ 3) . 4) () 5) # 6) - 7) pw 입력 값이 6자가 넘으면 안 됨 - 목표 pw 값을 6자 이하로 입력, 필터링을 우회하여 쿼리 결과값이 존재하도록 해라. #확인사항 - 가장 먼저, 주석문을 삽입해서 뒤에 and id!='admin' 조건문을 우회해야 할 것 같다. - Mysql에서 주석을 사용하는 방법을 알아보자. 1) # → 필터링 됨 2) --공백 // 예를 들어, --%20 혹은 --%09 등 → 필터..
#문제 #문제 의도 - 입력 값 필터링 규칙 (공통) $_GET['id'] = strrev(addslashes($_GET['id'])); $_GET['pw'] = strrev(addslashes($_GET['pw'])); if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 1) prob 2) _ 3) . 4) () 5) addslashes() 함수는 싱글쿼터('), 더블쿼터("), \, NULL 문자 입력 시 문자 앞에 \를 붙여 일반 문자로 만든다. 6) strrev() 는 인자로 받은 문자열 순서를 반대로 리턴한..
#문제 #문제 의도 - 입력 값 필터링 규칙 (공통) if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/\'/',$_GET[id])) exit("HeHe"); if(preg_match('/\'/',$_GET[pw])) exit("HeHe"); 1) prob 2) _ 3) . 4) () 5) 싱글쿼터(') - 목표 싱글쿼터(')를 우회하여 우회하여 쿼리 결과가 존재하면 해결 #확인사항 - prob, _ 문자는 테이블 접근하지 못하도록 걸어둔 것 같고, ()는 특정 함수 쓰지 못하게 걸어둔..