| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- androidhacking
- 리눅스
- 모의해킹
- pentest
- msfconsole #heartbleed #247ctf #misc #webhacking
- 밴딧
- error-based
- 안드로이드 모의해킹
- 쿠키변조
- bandit #밴딧 #웹해킹 #해킹 #화이트해커 #공부 #스터디 #IT #hacking #linux #openssl #nmap
- 취약점 진단
- time-based
- sql injection
- Linux
- Bandit
- androGoat
- Today
- Total
목록webhacking (13)
d0r1
"; echo "view-source"; $_GET['id'] = addslashes($_GET['id']); if(preg_match("/\(|\)|select|from|,|by|\./i",$_GET['id'])) exit("Access Denied"); if(strlen($_GET['id'])>15) exit("Access Denied"); $result = mysqli_fetch_array(mysqli_query($db,"select {$_GET['id']} from chall61 order by id desc limit 1")); echo "{$result['id']}"; if($result['id'] == "admin") solve(61); echo "";?>다음과 같은 코드가 존..
"); }echo("Admin page");if(preg_match("/2|-|\+|from|_|=|\\s|\*|\//i",$go)) exit("Access Denied!");$db = dbconnect();$rand=rand(1,5);if($rand==1){ $result=mysqli_query($db,"select lv from chall7 where lv=($go)") or die("nice try!");}if($rand==2){ $result=mysqli_query($db,"select lv from chall7 where lv=(($go))") or die("nice try!");}if($rand==3){ $result=mysqli_query($db,"select lv from chall7..
삽질하다가 3시간 걸렸다..... 생각보다 어려웠다 다음과 같은 페이지가 출력된다 각각 버튼을 눌러보면, admin의 게시글은 거부 그리고 guest는 hello~ 로 출력된다 여기서 우리는 admin의 readme를 읽어야한다 search는 subject 내의 내용을 읽어서 검색을 한다 elo 만 쳐도 hi가 출력되는 것을 보아 아무래도, %{input}% 으로 이루어진거 같다 _를 넣었더니, 두 개의 값이 떴다. 즉, _ 와일드카드가 작동하는 말이다 와일드카드가 작동하므로 와일드카드를 통해 readme의 내용을 파악할 수 있다. 예를 들자면, f_______ 이런식으로 말이다 그러나, %에 의해 중간지점도 파악될 수 있기 때문에 _를 통해 몇자리인지 파악하는게 우선이다 import requests u..
다음과 같은 페이지가 존재한다 필터링이 이루어지고 있으며, result가 admin이면 문제가 풀린다 일단 1을 넣고 보내보자 1~6까지는 반환되는 값이 존재한다 0, 7부터는 반횐되는 값이 존재하지 않는다. 문제에서는 admin이 result[0]에 위치해야 하기에, 0 혹은 7부터의 숫자를 사용해야 할 듯 하다 그러나 admin이라는 문자열을 넣기에는 ',"그리고 공백, () 괄호가 필터링 되기에 어렵다 이럴때는 헥사값을 이용해서 넣을 수 있다 admin --> 0x61646d696e
들어가면 다음과 같은 페이지가 뜨낟. IP가 로깅되고 있다고 알려준다 소스를 확인해보면, admin.php에 접속하면 엉덩이를 걷어찬다고 알려준다 admin.php에 접속해보자 접속하였더니, 비밀번호를 입력하라고 한다. sql injection을 통해 풀어보려 하였으나, 공격이 불가능하였다 그럼 다른 단서를 찾아야한다 해당 주석부분이 조금 이상했다. 시간이 지금과 맞지 않다는 점이 이상해서 해당 페이지를 살펴보는 과정에서 cookie에 time이라는 값이 존재하고 있음을 확인할 수 있었고 해당 값을 바꿔보았더니 0 -> 1699..로 회귀 1 -> 1 유지 2 -> 2 유지 또한 입력한 값에 맞게 시간이 변했음을 확인할 수 있었다 time은 초를 의미하고 있는 듯 하다 그럼 여기서 sql injectio..
들어가면 다음과 같은 페이지가 존재하며, 위에 박스에 값을 입력하고 제출하면 결과를 확인할 수 있다. ab처럼 두개의 문자열을 붙여서 작성하면, no hack이라는 경고문이 발생한다. A%를 입력하면 %25로 변환되어 입력된 모습을 확인할 수 있다. 우리는 NULL을 이용하여, 값을 이어붙일 수 있다는 점을 알고 있다. 아래 필요한 구문을 동일하게 작성해준다음 문자간 %00을 넣어서 우회할 수 있다. %00%00a%00l%00e%00r%00t%00(%001%00)%00;%00
다음과 같은 페이지가 존재한다. test.txt를 클릭하면, test.txt가 다운된다. read me인 flag.docx를 눌러서 다운을 받으면 문제가 해결될 듯 하다. 짜잔 권한이 없다고 거절당했다. 그럼, test.txt로 파일을 받는 과정을 변조하여, flag.docx를 받을 수 있는지 확인해보자. 인터셉터를 걸고, test.txt를 누르면 다음과 같은 요청이 잡힌다. down 뒤에 파일명인듯 하여, 이를 base64툴을 통해 확인해보았다. =가 붙어있는게 아무래도 의심스러우니까 역시 파일명이다. 그럼 이를 flag.docx로 변경하면 풀 수 있을거 같다.