| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 보안뉴스한줄요약
- 자바스크립트 API
- 자바스크립트 기본 문법
- 보안뉴스 요약
- 보안뉴스 한줄요약
- 자바스크립트
- 카카오프로젝트 100
- GIT
- ES6
- 랜섬웨어
- 자바스크립트 element api
- oracle db
- php
- python
- 오라클
- 파이썬
- 자바스크립트 prototype
- 카카오프로젝트
- 깃허브
- 자바스크립트 node
- numpy
- 다크웹
- javascript
- 자바스크립트 jQuery
- 자바스크립트 객체
- 보안뉴스
- oracle
- 보안뉴스요약
- 카카오프로젝트100
- Oracle SQL
- Today
- Total
목록Web Hacking/Lord of injection (19)
FU11M00N
이번엔 11단계 골렘입니다!! 바로 봐보겠습니다. 이번에 금지되는 문자들은 prob,_(언더바) ,( ) , or, and, substr,=이네요..! 7단계의 문제의 orge와 흡사하지만 substr이 필터링되어있습니다. 자! 데이터베이스의 pw와 입력한 pw의 값이 같습니다. 그럼 이제 뭐 해야 할지 감오시죠??! 값을 정확하게 입력해줘 야하기 때문에 Blind injection을 해줘야 합니다!! 더보기 블라인드 인젝션에 대한 자세한 설명은 4단계 문제와 감사하겠습니다!! 하지만 이 문제에선 우리가 7단계에서 사용했던 substr과 = 이 필터링되어있어서 매우 난감합니다... 하지만 substr와 =을 다른 것으로 우회하면 됩니다!! substr은 substring으로 우회하면 됩니다. substr..
이번 시간엔 10단계인 스켈레톤입니다!! 드디어 10단계라니 기분좋으면서도 앞으로의 문제들이 두려워지네요,,, 화이팅!! 자 이번문제에서 preg_match로 금지시키는 것은 prob,_(언더바), .(쩜) , ( ) 입니다!! 그리고 쿼리문을보면 pw의 값을 사용자로부터 가져오고 뒤에 and 1=0 이라는 논리 연산자가 붙었네요!!! 그리고 쿼리문에서 id는 guest로 박혀있지만 id의 값을 admin으로 적어줘야 solve()가 뜨면서 Clear가 될것입니다 그럼 먼저! and 1=0에대해 자세히 설명하기전에!! and와 or 논리연산자 에대해 간단히 설명하자면 and는 둘다 참이면 True 값을 반환하고 or는 하나라도 참이면 Ture 값을 반환합니다! 제가만약에 ?pw=1111' or id='a..
자 이번에는 9단계인 뱀파이어입니다!! 바로 코드 보겠습니다. 이번에 금지시키는 것은 '입니다. 그리고 str_replace 함수가 나왔는데요! 일단 뭔진 모르겠지만 admin이 나왔습니다 그 후 밑에 들은 전 단계의 문제와 비슷하게 간단한 코드입니다 자 그럼 먼저 str_replace가 뭔지 알아야겠는데요!! str_replace는 문자열을 바꿔주는 함수입니다! 간단히 예를 들자면 그럼.$abc의 결괏값은 고양이 강아지 소가 되겠고 .$result의 결과 값은 돼지 강아지 소 가 됩니다! 그럼 {$_GET[id]} = str_replace("admin","", $_GET[id]); 코드에서 ('변경될 문자' , '변경 완료될 문자', '해당하는 문자열') 순서 이니깐, admin은 없어질 문자 ""은 ..
이번엔 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..