Web Hacking 65

[XSS challenge] Stage #10

저번처럼 hidden속성에 onclick을 활용해 풀었더니 바로 풀렸는데, 원래 의도와는 다른 것 같아 힌트를 보았다. 힌트 : s/domain//g; 처음에 기본 공격구문으로 공격했을때 "> 위와 같이 domain이 생략되는 것을 알 수 있었다. 다음과 같은 방법으로 우회할 수가 있다. "> 더보기 다른 방법을 첨부한다. 자바스크립트로 우회하는 방법 "> https://mins4416.tistory.com/116

[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

[XSS challenge] stage #6

공격코드를 쓰면 input창에 그대로 나타난다. 힌트를 보니 event handler attributes라 써있길래 event 속성을 쓰는건가 싶어 onclick 속성을 써보기로 했다. 공격에 실패해 이번에는 input창에 써보기로 했다. "> search를 누르고 input창을 클릭하자 공격에 성공했다. ">를 써주지 않으면 공격에 실패한다. 소스코드에서도 ">을 빼먹어서 실패했나 싶어서 같은 공격코드로 공격했는데 실패했다.

[Lord of SQL Injection] goblin

id를 admin으로 만들면 풀릴 것 같은데 id가 guest로 쓰여있다. id=admin 식으로 입력하자 역시 id값은 변하지 않았다. no에 아무거나 입력하고 뒤에 주석으로 id=admin을 날려보았더니 Hello guest를 띄웠다. no=1 %23id=admin 여러가지로 시도해보다가 "를 입력하면 다음과 같이 뜬다는 것을 알아냈다. if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); 이 부분을 보니까 쿼터를 필터링한다. url 인코딩으로 입력해보기로 했다. "를 %22로 입력해보아도 No Quotes가 뜬 걸로 보아 url 인코딩은 통하지 않는 것 같다. 필터링을 우회할 수 있는 방법을 알아보다가 엄청난 사이트를 발견했다. 심지어 블..

Web Hacking/LoS 2021.04.10

[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