일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹해킹 기초
- web-server
- webhacking.kr
- 프로그래밍
- write up
- SQL Injection
- system hacking
- Bandit
- burp suite
- sql injection bypass
- 인공지능
- hackthissite
- XSS GAME
- 웹개발
- 코딩
- 테크트렌드
- root me
- Wargame
- 정보보안
- CTF
- lord of sqlinjection
- 사이버보안
- overthewire
- web hacking
- pythonprogramming
- geminipro
- 웹해킹
- 개발자
- WebHacking
- Over The Wire
- Today
- Total
목록sql injection bypass (5)
컴맹에서 컴공 그리고 화이트 해커가 되는 그날까지

darkknight 정말 다크나이트한 문제였다... 우선 Hello admin을 보기 위해 sql injection 공격을 수행하려고 했다. 그런데 여기서 '(세미콜론)이 pw에 필터링이 되어있어서 pw에 sql injection 공격을 하기에는 무리가 있었다. 이것 때문에 시간을 많이 소비하게 되었지만 나무를 보지 말고 숲을 봐야 하는 마음으로 뒤에 and no=이 있었기 때문에 $_GET [no]에 sql injection 공격을 수행하였다. ?no=12%20or%20id%20like%20"admin"--%20 이렇게 작성했고 공격은 성공적이었다. 그럼 이제 pw를 찾아야 하는 단계이다. 바로 뒤에 sql 구문을 추가해서 pw의 길이를 알아보았다. ?no=12%20or%20id%20like%20"ad..

이 문제의 php 코드를 살펴보니 뭔가 지금까지의 스킬이 짬뽕되어 있는 것처럼 보인다. 전단계의 darkelf에서 사용했던 것 그대로 사용하면 될것 같고 여기서 주목해야 할 코드는 역시 이 부분인 것 같다. result[ 'pw' ] 와 GET으로 받은 패스워드가 일치해야 문제가 풀리는 blind sql injection 문제다. 이 부분은 orge 단계까지 온 사람이라면 어디서 본 기역이 있을 것이다. 바로 orc문제이다. orc 단계에도 위에 보이는 php 코드처럼 패스워드가 일치해야 문제가 풀리는 방식이었다. 그럼 이제 본격적으로 문제를 풀어보자 우선 Hello admin 까지 출력하고 이제 pw의 길이를 한번 찾아보자 ?pw=123%27%20||%20id=%27admin%27%20%26%26%20..

darkelf 문제도 그전 문제인 wolfman과 비슷한 문제이다. 그러나 이번에 무엇이 필터링 되었는지 살펴보면 이번에는 공백이 아니라 or, and 같은 논리 연산자들이 필터링되었다. 이번에도 구글의 도움으로 필터링 우회를 찾아보면 'or'은 '||' 로도 사용할 수 있다는 사실을 알게 되었다. 그럼 이번에도 필터링 우회 sql injection을 작성해 보면 "?pw=123' || id = 'admin' -- " 이렇게 된다. --(주석처리) 뒤에는 공백이 있어야 주석처리가 되기 때문에 이 부분을 주의하자! 완성된 sql injection 구문을 넣으면 DARKELF 클리어!

wolfman 단계의 화면이다. 쿼리: id='guest' 및 pw=''인 prob_wolfman에서 id 선택이라는 글과 php코드가 있다. 여기서 $query 문을 위에 글로 설명해 놓은 것 같다. id='guest' 및 pw=''인 prob_wolfman에서 id 선택 그리고 만약 id == 'admin'이라면 문제가 해결된다. 그럼 우리는 pw에 값을 넣을 수 있기 때문에 sql injection을 사용하여 pw=123 넣어주고 id='admin' -- (주석처리)를 해주면 sql injection이 발생하여 문제가 풀릴 거라 생각했다. 그래서 ?pw=123' or id = 'admin' -- ' 이렇게 처리했더니 다음과 같이 공백 없음 ~_~이라는 글이 나왔다. php코드를 보니 공백을 필터링해..

SQL INJECTION이란 말과 함께 입력할 수 있는 칸과 view-source가 있다. 이번 문제는 SQL INJECTION 취약점을 이용하는 문제인 것 같다. 일단 소스코드를 보자 밑에 GET ['no']에 대한 php를 살펴보면 sql injection 문제답게 sql injection 필터링이 되어 있다. 필터링을 우회하여 문제를 해결해야 하는 것 같다. 일단 아이디가 guest라고 하면 guest가 출력이 된다고 한다. 그리고 아이디가 admin이면 문제가 풀린다. 그리고 주석으로 admin의 no = 2라고 한다. 그럼 "select id from chall27 where id='guest' and no=({$_GET['no']})" 이 부분을 sql injection 공격을 해야 하는 부분..