일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 보안뉴스 요약
- python
- numpy
- 자바스크립트 객체
- php
- ES6
- javascript
- 자바스크립트 node
- 카카오프로젝트
- Oracle SQL
- 자바스크립트
- 자바스크립트 element api
- GIT
- oracle
- 자바스크립트 prototype
- 오라클
- 자바스크립트 jQuery
- 카카오프로젝트100
- 깃허브
- 파이썬
- 카카오프로젝트 100
- 랜섬웨어
- 보안뉴스 한줄요약
- 보안뉴스
- 보안뉴스한줄요약
- 보안뉴스요약
- 자바스크립트 API
- 자바스크립트 기본 문법
- 다크웹
- oracle db
- Today
- Total
목록Web Hacking/Lord of injection (19)
FU11M00N
이번 시간은 3단계인 goblin이다. 이번문제는 preg_match로 못쓰는것이 추가되었다 '(싱글쿼터) , ''(더블쿼터) 를 쓰면 No Quotes ~_~가 나온다,,, 그리고 GET 방식으로 정의할 수 있는 변수는 no 뿐이다. 쿼리문을보면 id의 값이 guest로 콕 박혀져있는데 if($result)['id']) == 'admin') 을 보면 id는 admin이 되어야 clear이다. 그러하여 어차피 id값만 맞으면 되니깐 no=111(아무숫자) or id='admin' 을 사용할려고했지만 위에서 말했듯이 싱글쿼터와 더블쿼터가 막혀져있다. 이렇게 쿼터들이 막혀져있으면 이것을 우회하여야하는데 바로 문자열의 아스키 값을 char() 함수를 통하여 다시 문자열로 변환하는 것이다. 여기서 admin의 ..
이번엔 2단계 cobolt이다 1단계와 비슷하게 id와 pw 값에 prob, _(언더바) , ( ) 가 오면 No Hack ~_~ 가 뜬다.. 이번 문제는 id의 값이 admin이라고 나와있고 pw의 값을 알아내야 한다. 하지만 우린 1단계에서 배운 Mysql은 #과 -- , /* */ 가 주석 처리문이라고 배웠기때문에 (-- 뒤에 은 한칸공백이다) pw의 값을 주석처리로 무시해보자!!! ?id=admin' --%20 으로 COBOLT의 문제가 해결되었다.
로드오브 인젝션의 첫번째 문제인 gremlin 이다. 먼저 코드먼저 분석하자면 preg_math 함수가 보이는데 이 함수는 정규식을 표현하는것으로 '/' 으로 시작한다. 이 문제에서 들어가면 안되는 단어와 특수문자는 prob , _(언더바) , ( ) 이다. 그리고 mysql_fetch_array 부분이 보인다. 이것은 값을 배열로 가져오겠다는 뜻이다. 여기서 중요한점은 mysql을 사용한다는것이다 mysql의 주석은 # , -- , /* */ 이다. 하지만 -- 의 주석은 반드시 한 칸의 공백이 들어가야 인식이된다. 그 다음 코드를 보자면 $query 부분에 SQL 쿼리를 생성시키는 시키는모습이 보이는데 인자값으로 $_GET[id]와, $_GET[pw]의 값을 받는다. 즉 $_GET[pw]는 사용자가 ..