일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Remote File Inclusion
- Lord of SQL Injection
- 워게임
- webhacking.kr
- Insecure CAPTCHA
- DVWA
- bypass CAPTCHA
- 해커팩토리
- Los
- sql injection
- 빡공팟 4기
- TeamH4C
- 웹 해킹
- File Upload Vulnerability
- Weak Session IDs
- 써니나타스
- wargame
- DreamHack
- Dremhack
- XSS
- 빡공팟 6기
- DOM-Based XSS
- H4CKINGGAME
- 정보보호
- Hackerfactory
- 드림핵
- Cross Site Scripting
- Web Hacking
- 정보보안
- SuNiNaTas
- Today
- Total
목록워게임 (93)
도카이트

문제 화면 - Login 과 Join 두 개의 버튼이 존재한다. - Login 버튼을 클릭 시 로그인을 할 수 있는 페이지로 이동하며, - Join 버튼을 클릭 시 Access_Denied 경고창을 출력한다. (캡처 생략) Login 페이지 - ID와 PW를 입력하여 Login 할 수 있는 입력 폼이 출력된다. - 아무 단서도 없이 그냥 이렇게 화면만 떡 하고 있는걸 보아… SQL Injection 문제인가..? 싶었다. - ID에 admin을 대입 후 PW 검증을 우회하도록 SQL Injection 기본 구문들을 모두 입력해보았으나 모두 실패했다.. - 문제 초반에 join 페이지에 대한 접근이 막힌 것을 보아, 이를 우회하는 문제인가(?) 하는 생각이 들었다. join.php 소스코드 - login ..

문제 화면 - 숫자와 영소문자가 혼용된 문자열과 함께 Password 입력 폼이 출력된다. - 소스코드를 확인해보도록 하자 ! 소스코드 - 먼저 sleep(1) 을 설정하여 Brute Force 공격을 방지하고 있다. - chall4 라는 세션 값과 Password 입력 폼에 입력한 key 값이 일치하는 경우 문제가 solve 된다. - 또한 chall4 는 10000000~99999999까지의 랜덤한 값에 salt_for_you 문자열을 합하여, - 총 500번 sha1 해시 암호화를 진행한 값이다. - 즉, 파이썬을 이용하여 위 과정을 거쳐 획득한 값들을 레인보우 테이블로 저장한 후 - 문제에 출력되는 $hash 값과 일치하는 암호화 전의 문자열을 입력하면 되는 것이다. 레인보우 테이블 ? 해시함수(..

문제 화면 - 바로 소스코드를 확인해보아야 할 듯 하다. - view-source 를 클릭하여 소스코드를 확인해보자 ! 소스코드 # old-1 소스코드. 일부 생략

문제 화면 - 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() 함수를 이용한 필터링 우회 - 위 예제에 사용한..