wargame 7

[Webhacking.kr] challenge{old-26}

아무것도 없는 화면에 소스코드만 뜬다. 소스코드 view-source 이 부분을 보자. id값으로 admin이 들어가야 문제가 풀린다. admin을 필터링하고 있기 때문에 그대로 넣을 수는 없다. 그리고 urldecode 함수도 사용해 다시 저장하는 것을 볼 수 있다. id=admin을 그대로 보내면 당연히 no!가 뜨고, url인코딩을 해서 보내도 no!가 뜬다. ?id=%61%64%6D%69%6E 자동으로 디코딩이 되어 admin으로 바뀌는 것을 볼 수 있다. 여기서 한번 더 url인코딩을 하면 될 것 같다. ?id=%2561%2564%256D%2569%256E 문제를 해결할 수 있었다.

[Lord of SQL Injection] wolfman

id를 admin으로 만들면 풀리는 문제같다. 공백문자를 필터링하고 있다. 아래 블로그에서 공백 우회방법을 참고했다. https://binaryu.tistory.com/31 1. Tab : %09 no=1%09or%09id='admin' 2. Line Feed (\n): %0a no=1%0aor%0aid='admin' 3. Carrage Return(\r) : %0d no=1%0dor%0did='admin' 4. 주석 : /**/ no=1/**/or/**/id='admin' 5. 괄호 : () no=(1)or(id='admin') 6. 더하기 : + no=1+or+id='admin' 그 외 다양한 우회 방법 참고 https://g-idler.tistory.com/61 간단해 보이는 +를 써봤는데 필터링되..

Web Hacking/LoS 2021.05.18

[Lord of SQL Injection] orc

addslashes 이스케이프 시켜야하는 문자 앞에 백슬래시를 붙여주는 작업을 하는 함수다. ', ", \, NUL 을 처리한다. zzaps.tistory.com/45 쿼터를 필터링하고 있음을 알 수 있다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); 이 부분을 보면 입력값과 DB의 pw가 일치해야 풀리는 것을 확인할 수 있다. 이 문제는 Blind SQL Injection 을 사용해야 한다. Blind SQL Injection은 쿼리 결과에 따른 서버의 참과 거짓 반응을 통해 공격을 수행하는 방식이다. length(pw)=pw길이 length함수를 사용하면 패스워드 길이를 알 수 있다. 1부터 값을 늘려가며 찾아보자. pw='..

Web Hacking/LoS 2021.05.09

[natas] level 8 → 9

이번에도 인풋창이 있다. hello를 입력한 결과 입력한 글자를 포함한 단어를 알려주는 거였다. a를 입력하면 사전처럼 단어가 줄줄 나온다. 소스코드를 보자. natas9 Find words containing: Output: View sourcecode array_key_exists(string|int $key, array $array) : bool 배열 내에 키 또는 인덱스가 존재하는지 확인하는 함수 key : value to check array : an array with keys to check passthru 외부 프로그램을 실행하는 함수 system()이나 exec()같은 함수이다. 우선 natas의 모든 password는 /etc/natas_webpass/natas(번호)에 있다는 사실을 ..

Over the Wire/natas 2021.05.09

[Lord of SQL Injection] cobolt

쿼리 select id from prob_cobolt where id='' and pw=md('') 저번과 다르게 md5로 pw값이 해시화된다. 테스트삼아 괄호를 맞춰 1=1을 해봤는데 다음과 같은 결과가 나왔다. id=1&pw=1') or('1'='1 코드를 보니 if문으로 id가 admin일 경우 풀리게 되어있고 아닐경우에 이런 문구를 출력한다. if문에는 id값이 admin인지 아닌지만 확인하고 있다. 그러면 admin뒤의 값을 주석처리하면 풀리지 않을까? #을 그대로 치니 입력이 되지 않았기 때문에 문자인코딩으로 %23을 넣어주었다. '으로 id값을 닫아주어야 clear할 수 있다. id=admin'%23 cobolt clear~

Web Hacking/LoS 2021.04.04

[natas] level 3 → 4

natas4.natas.labs.overthewire.org/ 처음에 들어가면 이런 문구가 뜨고 refresh page를 누르면 다음과 같이 변한다. 단순히 문구만 변한 게 아니라 주소도 natas4.natas.labs.overthewire.org/index.php로 변했다. URL값을 조작해보다가 이런 식으로는 풀 수 없을 것 같아 burp suite를 켰다. burp suite로 referer를 natas5주소로 변경했다. Referrer 더보기 리퍼러란 웹 브라우저로 월드 와이드 웹을 서핑할 때, 하이퍼링크를 통해서 각각의 사이트로 방문시 남는 흔적을 말한다. A웹페이지에서 B사이트로 이동하는 하이퍼링크가 존재할 때, 이용자가 이 링크를 클릭하면 웹 브라우저에서 B사이트로 참조 주소(리퍼러)를 전송..

Over the Wire/natas 2021.04.02