| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 웹 해킹
- Los
- wargame
- H4CKINGGAME
- Remote File Inclusion
- DVWA
- 정보보안
- webhacking.kr
- TeamH4C
- DreamHack
- 빡공팟 4기
- 빡공팟 6기
- DOM-Based XSS
- Insecure CAPTCHA
- 워게임
- Lord of SQL Injection
- 정보보호
- 해커팩토리
- Web Hacking
- 드림핵
- XSS
- Cross Site Scripting
- Dremhack
- Weak Session IDs
- Hackerfactory
- bypass CAPTCHA
- File Upload Vulnerability
- 써니나타스
- SuNiNaTas
- sql injection
- Today
- Total
목록sql injection (18)
도카이트
문제 화면 - preg_match 함수로 범벅을 해놓은 코드를 볼 수 있다. - 일부 특수문자들을 필터링하는 No Hack 부분은 이전 문제들부터 존재했으므로 생략하고, - id 와 pw 값에 대하여 두 값 모두 싱글 쿼터를 필터링 하고 있다. - $result 로 id 값을 불러오되, id 가 참이 되면 문제가 clear 되는 듯 하다. 싱글 쿼터의 우회 기법에 대해서 이전 문제들을 풀어보면서 찾아보았을 때, 항상 모습을 비췄던 것 중 하나가 백슬래시(\)를 이용한 우회 기법이 있다. succubus 문제가 id, pw 두 개의 파라미터 값을 입력해야함과 동시에 싱글 쿼터를 필터링하므로, 해당 기법을 이용하여 해결하는 문제가 아닌가 싶다..! 그럼 백슬래시를 이용하여 싱글 쿼터를 우회해보자! 백슬래시(..
문제 화면 - 5행의 preg_match 함수를 통해 pw 값에 대하여 싱글 쿼터를 필터링하고 있다. - like 구문을 사용하여 pw 값을 찾아서 가져오는 쿼리문이다. - 이전 문제들과는 다르게 like 구문의 특성을 이용하여 풀어야하는 문제인듯 하다. - 먼저 like 구문에 대하여 쓰임새와 특징에 대해 알아보자 ! Like 구문 : 쿼리문 WHERE 절에 주로 사용되며, 부분적으로 일치하는 칼럼을 찾을 때 사용 SELECT * FROM [테이블명] WHERE LIKE [조건] - _ : 글자 수를 설정 (ex. pw like a___ 또는 __a) - % : 글자 수를 설정하지 않음 - %a%: 전체 문자열에 a가 존재 - a% : 문자열이 a로 시작 (ex. pw like ab% 또는 abc%) ..
문제 화면 - 문제가 다소 새로워진 느낌이 든다 ! - 1234 칼럼 값을 prob_giant에서 가져와야 하는데.. from과 prob_giant 사이에 공백이 없다.. - 따라서 shit 값에 공백을 주어 from과 prob_giant 사이에 공백을 추가해주어야 한다. - 그러나 5행의 strlen 함수를 통해 shit의 길이가 1이 초과되면 No Hack ~_~ 을 출력한다. - 또한 6행의 preg_match 함수를 통해 공백과 각종 이스케이프 문자를 필터링 하고있다. - 이전 문제들 중에서 URL 인코딩 문자들을 통해 공백을 우회해본 적이 있으니.. - 공백 우회기법들을 차례대로 사용해보며, 문제 풀이를 시도해보자 ! 문제 풀이를 들어가기에 앞서 SQL Injection 시, 공백을 우회하는 방..
문제 화면 - preg_match 함수를 통한 필터링이 더 깐깐해졌다.. - 6행을 통해 pw 값에 대한 싱글 쿼터에 대한 필터링이 이루어지고 있으며, - 7행에서는 no 값에 대해 싱글 쿼터와, substr, ascii, =, or, and, 공백, like, 0x 에 대한 대소문자 포함 필터링이 이루어진다. - 그럼에도 no 값에 대해서 싱글 쿼터가 감싸져있지 않으므로, bugbear 문제도 이전 darkknight 문제와 동일하게 - no 값에 쿼리문을 삽입하여 Blind SQL Injection을 시도한다 ! URL 인코딩 문자와 in 을 이용한 필터링 우회 - 위 예제에 사용한 구문은 다음과 같다. - pw=1&no=1%7C%7Cid%09in(”admin”) - Tab(%09), or(%7C%7..
문제 화면 - preg_match 함수를 통해 필터링을 무자비하게 많이 걸어놨다… - pw 값에 대하여 싱글쿼터를 필터링 하고 있으며, - no 값에 대해서는 싱글 쿼터와, substr, ascii 문자열을 비롯한 각종 특수문자를 필터링하고 있다. - 눈여겨 보아야 할 점은 8행의 $query 변수의 선언인듯 하다. - pw의 경우 싱글 쿼터로 감싸져있으나, and 구문 이후 no 값은 싱글 쿼터로 감싸져 있지 않다. - 최종적으로는 admin의 pw 값을 알아내야 하는 Blind SQL Injection 문제이다. - no 값이 그나마 공격에 용이한 부분일 듯하여, no 값에 쿼리문을 삽입하여 공격을 시도해보도록 한다. or 구문과 like, char() 함수를 이용한 필터링 우회 - 위 예제에 사용한..
문제 화면 - 6행의 preg_match() 함수를 통해 or, and 구문 그리고 substr 함수와 = 에 대한 필터링이 이루어지고 있다. - 또한 마지막에서 3번째 행을 통해 admin의 pw 값을 직접 알아내야함을 알 수 있다. - 각 필터링을 우회하는 Blind SQL Injection 구문을 작성하여 admin의 pw 값을 알아내는 문제인듯 하다. - 늘 그래왔듯 먼저 admin의 pw 길이부터 알아보자 ! URL 인코딩 문자와 like 를 이용한 필터링 우회 - or(%7C%7C) 와 like 를 이용하여 or 문자열과 = 필터링을 우회하였다. - Hello admin이 출력되며, 각 필터링을 우회한 SQL Injection 공격이 성공하였다. - 위 예제에 사용한 구문은 다음과 같다. - ..
문제 화면 - 6행의 코드를 보면 pw 값을 입력 받은 이후에 추가로 adn 1=0 구문이 추가되었다. - and 1=0 을 통해 의도적으로 값을 거짓으로 만드는 듯 한데 … - 별다른 필터링이 없으므로, 여태 풀이해왔던 대로 pw 값에 or 구문을 이용하여, - id 값을 admin 으로 출력하도록 작성 후 주석 처리를 통해 and 구문을 주석화하면 될 듯 하다. or 구문과 주석 처리(#, %23)을 통한 and 문 우회 - 위 예제에 사용한 구문은 다음과 같다. - pw=1’ or id=’admin’%23 - or 구문 이후 id 값에 admin을 입력 후 # (%23)을 이용하여 뒤의 and 구문을 주석화시킨다. - 성공적으로 skeleton 문제도 Clear 할 수 있었다 !
문제 화면 - 6행의 strtolower() 함수를 통해 id 값을 소문자로 변환하고 있다 ! - 또한 str_replace 함수를 통해 admin 문자열을 빈 값으로 치환하고 있다. - str_replace 함수를 우회하여 id 값으로 admin을 전달하여 출력하면 해결할 수 있을 듯 하다 ! - str_replace 함수의 우회 방법은 기존 dvwa 포스팅에서 자주 다뤘었던 부분이므로, - 이에 대한 자세한 설명은 생략하고 바로 풀이 과정에 대해서만 작성하도록 하겠다. 'Web/DVWA' 카테고리의 글 목록 차세대 보안 리더 양성 프로그램 Best of The Best 10기 보안 컨설팅 트랙 dyeonee.tistory.com id 값으로 admadminin 입력 - str_replace 함수를 우..