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

LORD OF SQLINJECTION은 문제를 풀다 보면 알 수 있지만 계속 단계를 거듭할수록 전 단계에서 사용했던 기술들을 활용하는 점에서 공부하는데 굉장히 큰 도움이 되는 것 같다. 이번 문제 역시 전 단계들을 풀면서 활용했던 기술들을 사용하는 문제이다. 우선 'or', 'and' 그리고 이번에는 '=' 이것도 필터링이 되었다. '='은 'like'를 사용하여 필터링을 우회하였다. 첫번째로 Hello admin을 띄워보자면 ?pw=123%27%20||%20id%20like%20%27admin# query : (select id from prob_golem where id='guest' and pw='123' || id like 'admin') 또는 ?pw=123%27%20||%20id%20like%2..

이 문제의 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코드를 보니 공백을 필터링해..