일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프리다
- 아파트실거래가
- UnCrackable
- 아파트
- 월세
- 전세
- 웹해킹
- 부동산분석
- 안드로이드
- Lord of SQLInjection
- ADB
- Los
- Frida
- 블라인드 인젝션
- SQL INJECTION
- 후킹
- webhacking.kr
- Blind Injection
- 스마트폰
- 매물
- Mid()
- 호갱노노
- 투자
- 서울
- jeb
- APKManager
- 일기
- 모의해킹
- NOX
- 부동산
- Today
- Total
목록모의해킹 (35)
일단 쓰고보자
#문제 #문제 의도 - 입력 값 필터링 규칙 (pw) if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 1) prob 2) _ 3) . 4) () - 목표 필터링을 사용하지 않거나 우회하여 쿼리 결과 id가 admin이면 해결 #확인사항 - prob, _ 문자는 테이블 접근하지 못하도록 걸어둔 것 같고, ()는 특정 함수 쓰지 못하게 걸어둔 것 같다. - 쿼리문 맨 뒤에 and 1=0 구문이 있는걸로 보아, pw 값으로 어떤 것을 넣어도 거짓이 되도록 셋팅했다. - 그런데 주석(#)이나 싱글쿼터('), or, and 등등 살아있는 문자가 많아서 우회하는 건 쉬울 것으로 보인다. - 이 문제 포함 앞 몇 문제가 정말 간단한 개념만으로 ..
#문제 #문제 의도 - 입력 값 필터링 규칙 (id) if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~"); $_GET[id] = strtolower($_GET[id]); $_GET[id] = str_replace("admin","",$_GET[id]); 1) 싱글쿼터(') 2) 입력 값을 소문자로 치환 3) 입력 값 중 admin 이 존재하면 공백으로 처리 - 목표 필터링을 사용하지 않거나 우회하여 쿼리 결과 id가 admin이면 해결 #확인사항 - str_replace() 치환함수는 상당히 취약한 문제점이 있다. 심지어 빈 칸으로 치환하게되니 더욱 그렇다. - str_replace() 가 "admin" 문자열을 공백으로 바꾸니, admin 사이에 admin..
#문제 #문제 의도 - 입력 값 필터링 규칙 (id) if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~"); if(preg_match("/admin/", $_GET[id])) exit("HeHe"); 1) 싱글쿼터(') 2) admin - 목표 필터링을 사용하지 않거나 우회하여 쿼리 결과 id가 admin이면 해결 #확인사항 - 싱글쿼터를 우회해야하며, admin 문자를 concat() 함수? char()함수? 사용해서 이어볼까? → 다 훼이크다. 지난 orge, orc 문제에서 확인했던 사항 중 하나로, Mysql은 대소문자 구분을 안하는 걸 이용한 문제다. - 필터링 구문의 preg_match() 함수를 잘 보면 싱글쿼터(') 막는 부분은 i 옵션이 들어가..
#문제 #문제 의도 - 입력 값 필터링 규칙 (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 문자가 필터링 되어있다. - 이 두 조건 연산자를 대신할 수 있는 방법을 알아보자. ..
#문제 #문제 의도 - 입력 값 필터링 규칙 (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 문자가 필터링 되어있다. - 이 두 조건 연산자를 대신할 수 있는 방법을 알아보자. (생각보다 간단하게 문자로 바꾸면..
#문제 #문제 의도 - 입력 값 필터링 규칙 (pw) if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~"); 1) prob 2) _ 3) . 4) () 5) 공백 - 목표 필터링을 사용하지 않거나 우회하여 쿼리 결과 id가 admin이면 해결 #확인사항 - prob, _ 문자는 테이블 접근하지 못하도록 걸어둔 것 같고, ()는 특정 함수 쓰지 못하게 걸어둔 것 같다. - 필터링 문자에 싱글쿼터(')나 더블쿼터(") 등 다 열려있어서 기본 구문으로 해결할 수 있을 것이다. - 하지만 입력 구문 어디에나 들어가는 공백이 필터링 되어있어..