일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- javascript
- 카카오프로젝트100
- 파이썬
- 자바스크립트 element api
- Oracle SQL
- python
- 랜섬웨어
- numpy
- 보안뉴스한줄요약
- 자바스크립트 jQuery
- php
- 오라클
- oracle
- 보안뉴스 한줄요약
- GIT
- 자바스크립트 API
- 보안뉴스
- 깃허브
- 자바스크립트 객체
- 카카오프로젝트
- 보안뉴스요약
- 카카오프로젝트 100
- 다크웹
- 보안뉴스 요약
- 자바스크립트 node
- 자바스크립트 기본 문법
- ES6
- oracle db
- 자바스크립트 prototype
- 자바스크립트
- Today
- Total
목록Web Hacking (48)
FU11M00N
이번엔 8단계인 트롤입니다!! 그전에 제가 네이버 웨일 브라우저를 쓰는데 블랙 모드가 생겨 변경해봤습니다.. ㅎㅎ(헛소리) 자 이번 단계에서 금지된 것은 '이고 쿼리문에서는 id=admin이 되어야 troll가 뜨네요!! 그리고 처음 보는 함수 ereg() 함수가 나왔습니다! 이 함수가 아직 뭔지는 모르겠지만 admin을 금지시키는 것 같네요. 그럼 먼저 ereg() 함수에 대해 알아보겠습니다. ereg()는 2가지 종류가 있는데, 정규식으로 문자열을 찾거나, 찾은 문자열을 바꾸거나 하는 함수입니다! 하지만 ereg()의 함수는 두 가지로 나눠지는데요, ereg('찾고자 하는 문자', '필터링할 문자열') 대소문자를 구분하는 함수로 찾고자 하는 문자가 있으면 True, 없으면 False를 출력. ereg..
이번문제는 7단계의 orge이다!! 이번 코드를 분석해보니 이번에 금지된것도 prob,_(언더바),( ) 그리고 or와 and이다. 그럼 ||와 &&를 써야할것같고,, 쿼리문이 2개있는데 쿼리문이 각각 다르다. 첫번째 쿼리문은 id=guest이고 두번째 쿼리문은 id=admin이다 첫 번째 쿼리에서는 id='guest'로 되어 있고 두 번째 쿼리에서는 id='admin'으로 되어 있다. 하지만 이 문제는 결국 admin의 pw값을 알아내야하는데, 첫 번째 쿼리를 통해 admin의 pw를 알아내고, 두 번째 쿼리를 이용하여 문제를 풀면된다 결국 우리가 알아야할것은 id=admin이다. 또한 데이터베이스의 pw와 입력한 pw의 값이 같아야한다. 즉 Blind injection공격을 해야한다. 그럼 4단계에서..
자 이번 문제는 6단계인 darkelf이다!! 이번 문제의 금지는 prob, _(언더바),( ) 그리고 or와 and 을 막아놨다.......... 하지만 당황하지않고 바로 5단계에서 했던 ||를 떠올렸다 (참고로 and는 &&과 같다) 그럼 문제에서는 쿼리문의 id의 값은 guest라고 되어있고 id의 값은 admin이 와야한다. 그럼 이쯤 되면 이제 감이 온다 ?pw=123123'||id='admin 이런 식으로 구문을 짜면 될 것 같다!! 5단계와 비슷한 방법으로 풀어 쉽게 문제를 풀수있었다!!
이번엔 5단계인 wolfman이다. 이번에도 쓰면안되는것은 prob , _(언더바) , ( ) 인데 if(preg_match('/ /i' ,$_GET[pw])) 인 공백키를 사용하면 안되는것같다... 가면갈수록 우리에게 시련을준다.. id는 guest로 잡혀져있고 id를 admin으로 하여 풀어야한다. 이 문제는 전에 썼었던 pw=1' or id='admin 를 못쓴다 공백키가 금지되어있기때문에 공백키를 사용하면 No whitespace ~_~ 가 뜰것이다.. 여기서 or대신 || 를 쓰게되면 or는 공백을 써야하지만 ||는 공백을 안써도 or와 같은 역할을한다. 그럼 구문은 ?pw=1'||id='admin 가 될것이다. WOLFMAN을 Clear하였다!! load of injection 을 풀면서 느낀..
4단계 orc의 코드이다. 쿼리문에는 id=admin이들어가고 pw를 맞춰야할거같다! 이번에 금지된것은 prob, _(언더바), ( ) 이다 $query = "select pw from prob_orc where id='admin' and pw='{$_GET[pw]}'"; 쿼리문을 살펴보면 id는 admin으로 박혀져있고 pw를 우리가 알아야할거같은 구문이다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); 이 문법은 입력한 pw의 값과 데이터베이스 안에 있는 pw의 값이 같아야 한다는것입니다! 정확한 비밀번호의 값을 알아야합니다 이러한 경우는 Blind Injection 공격을 해야합니다 장님공격이라고도 부릅니다! Blind in..
이번 시간은 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]는 사용자가 ..