일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바스크립트 node
- 보안뉴스 요약
- 카카오프로젝트100
- GIT
- 카카오프로젝트 100
- php
- 깃허브
- 보안뉴스한줄요약
- 다크웹
- numpy
- oracle db
- Oracle SQL
- 랜섬웨어
- ES6
- 보안뉴스 한줄요약
- 자바스크립트 prototype
- python
- javascript
- 보안뉴스
- 자바스크립트 기본 문법
- 자바스크립트 객체
- oracle
- 보안뉴스요약
- 자바스크립트
- 자바스크립트 element api
- 자바스크립트 API
- 카카오프로젝트
- 오라클
- 파이썬
- 자바스크립트 jQuery
- Today
- Total
목록분류 전체보기 (507)
FU11M00N
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/6kGzu/btqzw0tr4kY/fvsbqkhEE0mE6ZtAB3Vi51/img.png)
안녕하세요!! 오늘은 zombie_assassin 입니다!! 그럼 바로 코드 보시죠!! 음,, 이번코드에서 금지시키는것은 \\\ , prob , _(언더바) , .(온점) , ( ) 입니다!!! 아이디와 패스워드 둘다 preg_match가 되어있는데요, 그다음엔 ereg 함수로 ' (싱글쿼터) 를 금지시키네요! 저번에도 ereg함수로 문제를 풀었었는데요! ereg함수는 필터링이 완벽하지않아 불완전한..? 함수라고 볼수있는데요,, 대소문자 구분도 못하고 %00으로 null byte를 넣어주면 이를 문자열의 끝으로 인식 해 이 뒤의 문자는 필터링을 제대로 안하는 취약점이있습니다... 저 또한 %00 을 사용하여 풀었는데요! 그럼 id에 쿼리문을 입력하여 문제를 풀어봅시다! ?id=%00 'or 1=1 %23..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qPBMf/btqzwuHf1Ht/cIGKVjtNQewnLntqoiPhPk/img.png)
안녕하세요!! 이번엔 assassin 15단계입니다!! 자 이번 문제도 소스가 비교적 짧네요!! 보러 가 봅시다! 음 우선 preg_match로 금지시키는 문자는 '(싱글쿼터) 입니다. 쿼리문은 pw에 사용자 입력을 하는 것 같고요, &result ['id']가 admin이면 solve가 되어 문제가 풀립니다! 즉, 쿼리 문의 pw가 일치하는 id값을 가져와야 하는 건데요, 최종적으로 id가 admin인 pw를 알아내야 합니다!! 저는 처음에 이 문제를 보자마자 엄청 쉽네~ 하고 접근했다가 왜 안돼....... 가 되었습니다... 우선 문제에 대한 접근은 왜 where절에 pw = 이 아니고 pw like를 했냐 의심해야 봐야 합니다. 우선 w3 schools에서 like에 대해 자세히 알아봅시다. 링크..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dgeQ9C/btqzukLYdVy/Xg8vzNurXjZa8TKZtP0UTK/img.png)
이 문제를 드간순간 저는 기분이 너무좋았어요... 왜냐하면 블라인드인젝션 문제가아니였거든요!!!! 파이썬을못해서 하나하나 노가다하는게 너무 힘들었는데, 드디어 해방인기분!! 잡담그만하고 이제 소스 보겠습니다!! 먼저 처음등장한 함수 strlen이 등장했네요!! strlen 함수는 그냥 길이를 알려주는 함수입니다. 예시를 들자면 (한글일땐 값이 달라짐) echo "이것의 길이는??? : ". strlen("Edward"); 출력 : 6 대충 이해 하셨죠??? 그럼 if(strlen($_GET[shit])>1) 이것의 뜻은 shit이 한글자가 넘으면 No Hack~ 을 출력 할것입니다! 그리고 이번 문제에서 금지시키는것은 \n \r \t 입니다. \n새로운 줄 \r리턴 키 \t탭 키 금지시키는것때문에 왠만한..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bnDVBb/btqzukkvesU/wWET9ZIfjdGHjPZyXTzL1k/img.png)
이번문제에서 금지된것은.. 이번에 필터링 되는것은 no는 prob, _(언더바), .(쩜) , ( ) ,'(싱글쿼터), substr , ascii , = , or, and, like, 0x , 공백(스페이스바)이고 pw는 '(싱글쿼터) 이다. 문제에서 금지시키는게 정말많다..... 정말 많은 시간을 투자하여 생각해야한다.... substr -> mid and -> &&(%26%26) or -> || =, like -> in (뒤에 ()!!!) (공백) -> %0a 우선 우회를 해야할것을 찾아와봤다.. 이런식으로 문제를 한번 풀어보자 먼저 항상그랬듯!! 길이부터!! ?no=1%0a||%0aid%0ain%0a("admin")%0a%26%26%0alength(pw)%0ain%0a(8) 자.. 이렇게 길이를 구..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qhR88/btqzt4IYqUR/66qKEtFk8WZETZJgCsqH5K/img.png)
자 이번에도 블라인드 인젝션입니다... 이번에 필터링 되는것은 no는 prob,_(언더바), .(온점) , ( ) , '(싱글쿼터) , substr , ascii , =(이퀄) 이고 pw는 '(싱글쿼터) 를 필터링합니다. 정말 가면갈수록 시련을주네요,,, 개인적으로 난이도가 갑자기 올라간 문제라고 생각합니다.. 먼저 =은 like로 대체해주고 '(싱글쿼터) 는 "(더블쿼터)로 대체해줘서 풀어봅시다! 그리고 예전에했던 블라인드와는 다르게 쿼리문에 no가 생겼다. 우선 no에 블라인드를 할생각으로 풀어보자. 먼저 항상그랬듯이 길이부터알아내자 길이를 알아내는 함수는 length() 이다 ?pw=1234 && no=1 or id like "admin" %26%26 LENGTH(pw) like "8" 자 이렇게 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bHnz7f/btqzrWxtRBj/SvZqQvj51ED3yhayqHlls1/img.png)
이번엔 11단계 골렘입니다!! 바로 봐보겠습니다. 이번에 금지되는 문자들은 prob,_(언더바) ,( ) , or, and, substr,=이네요..! 7단계의 문제의 orge와 흡사하지만 substr이 필터링되어있습니다. 자! 데이터베이스의 pw와 입력한 pw의 값이 같습니다. 그럼 이제 뭐 해야 할지 감오시죠??! 값을 정확하게 입력해줘 야하기 때문에 Blind injection을 해줘야 합니다!! 더보기 블라인드 인젝션에 대한 자세한 설명은 4단계 문제와 감사하겠습니다!! 하지만 이 문제에선 우리가 7단계에서 사용했던 substr과 = 이 필터링되어있어서 매우 난감합니다... 하지만 substr와 =을 다른 것으로 우회하면 됩니다!! substr은 substring으로 우회하면 됩니다. substr..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ZTpVF/btqznugKgZA/saIDKogvAiIsKK2AOCSKFk/img.png)
이번 시간엔 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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/1h38j/btqznQQujul/g2NPdI6KSc6mRCrvf3U8D1/img.png)
자 이번에는 9단계인 뱀파이어입니다!! 바로 코드 보겠습니다. 이번에 금지시키는 것은 '입니다. 그리고 str_replace 함수가 나왔는데요! 일단 뭔진 모르겠지만 admin이 나왔습니다 그 후 밑에 들은 전 단계의 문제와 비슷하게 간단한 코드입니다 자 그럼 먼저 str_replace가 뭔지 알아야겠는데요!! str_replace는 문자열을 바꿔주는 함수입니다! 간단히 예를 들자면 그럼.$abc의 결괏값은 고양이 강아지 소가 되겠고 .$result의 결과 값은 돼지 강아지 소 가 됩니다! 그럼 {$_GET[id]} = str_replace("admin","", $_GET[id]); 코드에서 ('변경될 문자' , '변경 완료될 문자', '해당하는 문자열') 순서 이니깐, admin은 없어질 문자 ""은 ..