일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Error based sql injection
- CTF
- 게시판 만들기
- 웹개발
- sql injection point
- JWT
- Python
- lord of sql injection
- 세션
- Reflected Xss
- MySQL
- Cross Site Request Forgery
- XSS
- union sql injection
- cors
- php
- blind sql injection
- sql injection
- csrf
- 과제
- 로그인페이지
- JS
- 쿠키
- lord of sqli
- css
- cookie 탈취
- 모의해킹
- file upload
- Los
- 로그인
- Today
- Total
목록모의해킹/Lord of SQLi (10)
Almon Dev
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bfmE3w/btsLFKpUsBI/XZ8ttnyqKGIu1gCXg4Tek0/img.png)
LOS 풀이 skeleton 풀이1. 코드 분석GET 메서드 pw 파라미터 값을 쿼리에 삽입하고, 쿼리 결과의 id 값이 admin인 경우 문제가 풀립니다.$query = "select id from prob_skeleton where id='guest' and pw='{$_GET[pw]}' and 1=0"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("skeleton"); 필터링은 prob _ . () 입니다.if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 삽입한 pw이후의 and 1=0을 주석처리하면 쉽게 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ZoPhw/btsLEoIl0tt/9WBRRQRSSn6zdTNujKz5Yk/img.png)
LOS 풀이 vampire 풀이1. 코드 분석GET 메서드의 id 파라미터를 쿼리에 삽입하고 쿼리 결과의 id가 admin인 경우 문제가 풀립니다.$query = "select id from prob_vampire where id='{$_GET[id]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("vampire"); ' 를 필터링하고 id 파라미터의 값을 소문자로 변경한 뒤 admin 문자를 공백으로 치환합니다.admin을 공백으로 치환하기 때문에 adadminmin처럼 admin이 사라질때 admin이 되도록 만들면 우회가 가능합니다.if(preg_match('/\'/i', ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/biQ38v/btsLDNPnfS7/umUlpEn0TbakQREoFX0FPK/img.png)
LOS 풀이 troll 풀이1. 코드 분석GET 메서드 id 파라미터를 쿼리에 삽입한 뒤 쿼리 결과의 id가 admin이면 문제가 풀립니다.$query = "select id from prob_troll where id='{$_GET[id]}'";$result = @mysqli_fetch_array(mysqli_query($db,$query));if($result['id'] == 'admin') solve("troll"); admin이라는 문자열을 필터링합니다.그런데 i 플래그를 붙이지 않아서 대소문자를 구분합니다.mysql은 대소문자를 구분하지 않기 때문에 Admin과 같이 대문자를 섞으면 우회가 가능해 보입니다.if(preg_match('/\'/i', $_GET[id])) exit("No Hack ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bpn9wC/btsLEJMbfLA/v3IiSGo05hLx6UPFGqFXQ1/img.png)
LOS 풀이 orge 풀이1. 코드 분석GET 메서드의 pw와 쿼리 결과의 pw가 일치하면 문제가 풀립니다.그렇다면 admin 계정의 실제 비밀번호를 알아야 풀 수 있는것 같습니다.$_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_orge where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orge"); 이번에도 or 과 and를 필터링 하기 때문에 || 와 &&를 활용해야 합니다.if(preg_match('/..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dKGFsd/btsLF4BB9VT/eKqbBGHvw7mkxt0rb3JeI1/img.png)
LOS 풀이 darkelf 풀이1. 코드 분석GET 메서드의 pw 파라미터가 쿼리에 삽입이 되고 쿼리 결과의 id가 admin인 경우 문제가 풀립니다.$query = "select id from prob_darkelf where id='guest' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("darkelf"); or과 and를 필터링합니다.mysql에서는 or과 and를 대체할 ||나 &&를 이용하면 우회할 수 있습니다.if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); i..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lMCfa/btsLFCyP6vE/zU9nk3gAfzJlqSiyRbx971/img.png)
LOS 풀이 wolfman 풀이1. 코드 분석GET메서드의 pw 파라미터가 쿼리에 삽입되며쿼리의 결과 id가 admin일 경우 문제가 풀립니다.$query = "select id from prob_wolfman where id='guest' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("wolfman"); 공백을 필터링하는 부분이 추가되었습니다.if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/ /i', $_GET[pw])) exit("No wh..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bWoAQK/btsLEGojljU/FOnb5jKjbuvbSymkNmc1zK/img.png)
LOS 풀이 orc 풀이1. 코드 분석이번 문제를 풀기 위해서는 입력한 pw파라미터의 값과 db에서 가져온 pw의 값이 일치해야 합니다.그렇기 때문에 실제 admin 계정의 비밀번호를 알아내야 하는 것 같습니다.$_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_orc where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query));if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); prob _ . ()를 필터링합니다.if(preg_match('/prob|_|\.|..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/d0f4M3/btsLE0GR94t/YTwb94zLexz1POt6fmMZhk/img.png)
LOS 풀이 goblin 풀이1. 코드 분석GET 메서드로 no 파라미터에 값이 쿼리에 삽입되고 쿼리의 결과중 id가 admin인 경우 문제가 풀립니다.$query = "select id from prob_goblin where id='guest' and no={$_GET[no]}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}";if($result['id'] == 'admin') solve("goblin"); prob _ . () 뿐만 아니라 ' " ` 까지 필터링이 됩니다.if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit(..