29번은 파일 업로드 문제이다. 문서파일에 있던 빈 파일 wrong.txt 를 제출했을 때의 상태이다.filename="wrong.txt" 이렇게 제출한 파일명과 확장자가 들어간다. 이 filename 부분을 이용해 sql injection을 하는 것 같은데 select password from c29_tb 가 힌트에 있는 것을 보니파일명에 저 c29_tb 테이블에서 password를 찾는 쿼리문을 넣으면 될 것 같다. 파일명 부분엔 아무거나 넣고 select password from c29_tb 와 자신의 ip를 ascii 값으로 변환하여 filename부분에 입력해주면 된다. "aaa', (select password from c29_tb), char(~~~~~~~~~~~~~~~~~~));#" fil..
55번 문제는 마우스 커서 위치에 따라 Score 부분이 달라지고 rank 페이지로 넘어갈 수 있는 링크가 있다.익플로 하면 저 캐릭터가 따라서 움직인다고 하나 크롬을 사용했더니 고정돼있다. 눈만 빨갛게 변할뿐 rank 페이지로 넘어가 페이지 소스를 보면 밑부분에 hint가 있다. small letter==================== --> score값에 테이블 내에 동일한 숫자인 2147483647을 넣어봤더니 그냥 id : id값 // score가 뜬다. ?score=0 and 1=1 을 하면 참이라 id : localhost // 0 이 뜬다. 그 외엔 id와 score 값이 뜨지 않는다. procedure analyse()를 사용하면 테이블명과 컬럼을 확인할 수 있다고 한다. ?score=0..
if($_POST[lid] && $_POST[lphone]){$q=@mysql_fetch_array(mysql_query("select id,lv from c59 where id='$_POST[lid]' and phone='$_POST[lphone]'"));if($q[id]){echo("id : $q[id]lv : $q[lv]");if($q[lv]=="admin"){@mysql_query("delete from c59");@clear();}echo("back");exit();}}if($_POST[id] && $_POST[phone]){if(strlen($_POST[phone])>=20) exit("Access Denied");if(eregi("admin",$_POST[id])) exit("Access D..
53번 페이지에 들어가면 hello world 밖에 안보인다.페이지 소스를 보면 val 값을 통해 쿼리를 전달하고 쿼리문의 결과가 $f에 저장된다.테이블 명을 입력할 수 있는 창이 뜨고, 입력된 테이블 명이 hidden_table과 같다면 문제가 풀리는 것 같다. 1) val이 1 인 경우 test 2) val이 2 인 경우 guest 3) val 이 3인 경우 admin 4) val 이 4인 경우 zombie 4 다음의 숫자는 입력해도 hello world 밖에 뜨지 않는다. procedure analyse() 는 테이블 컬럼을 최적화하기 위해 사용하는데, 이 걸 사용하면 DB명.Table명.컬럼명이 뜬다고 한다 그래서 ?val=4 procedure analyse() 를 입력하면 테이블 명으로 Chal..
27번은 주석과 like문을 이용한 sql injection이다. admin이 되어야 문제가 풀리는데 no이 1일때 guest였다.그래서 2가 admin이라고 추측했을 때,0) or no like 2 -- 문을 입력해주면 된다.하지만 그대로 입력창에 넣고 제출해버리면 제대로 되지 않으므로url의 no= 뒤에 url 인코딩 한 값을 넣어주면 된다.0말고 다른 숫자를 넣어도 되고, like는 no=2와 같은 역할을 한다. 0)%0Aor%0Ano%0Alike%0A2%0A--+ 끝~
49번 문제에선 1을 제출하면 zzibong이 나온다.하지만 다른 숫자 2를 입력하면 반응이 나타나지 않는다. 여러가지 필터링을 거치고 lv값이 admin이 되면 문제가 풀리는 것 같다.or는 필터링에 걸리니 똑같은 의미를 가진 || 를 쓰면 될거같다.그리고 공백도 안되니 공백 대신 %0a를 써준다. lv=2%0a||%0aid=admin 을 넣으니 안돼서 다른 방법을 찾아 봤는데 admin을 HEX형식으로 바꾸면 0x61646d696e 이 된다.그래서 admin 대신 0x61646d696e 을 넣어준다. 클리어!
3번은 아래쪽 빈 네모를 누르면 까만색으로 칠해지는데 네모로직과 관련된 것이라고 한다. 이렇게 하면 answer값이 변하는데 올바르게 입력하고 gogo를 누르면 name을 적는 페이지로 넘어가고 마음대로 name을 적어서 write하면 name과 answer, ip가 뜬다.write로 값을 넘길때 burp suite로 보면 answer=1010100000011100101011111&id="입력값" 이 뜨는데,생각해본 결과 난 정확한 id값을 모르니 AND 연산으로 아무값과 id값을 AND해서 False로 만들고True인 answer값과 False인 AND연산 값을 OR하면 True가 나올 것 같다. 그렇게 해서 answer=1010100000011100101011111 || "아무값" &id="입력값" ..
18번은 SQL INJECTION 관련 문제인 것같다.문제 페이지엔 index.phps 페이지로 들어갈 수 있게 해놨는데 들어가보면 no를 get으로 입력받아야 소스가 실행되고,eregi를 이용해 no를 입력 받았을 때, 공백,|/|\(|\)|\t|\||&|union|select|from|0x 이런 값들이 있으면exit에 의해 no hack이 뜨며 함수가 실행되지 않고 종료된다. 그 다음 mysql 함수로 id = guest이고 입력받은 no값과 일치하는 id를 검색하여 q라는 변수에 저장한다. 아무거나 넣어보다가 1을 넣어봤는데 url에 no=1이 뜨고 hi guest가 뜨는걸 보아 no=1의 id는 guest이다.mysql table에 admin과 guest밖에 없다면 no=2는 admin이 아닐까 ..
44번은 name에 무언가를 쳐서 Make 하면go.html 페이지에 hello (입력값) 이 뜨는데저 창에선 5글자가 최대치인 것 같다. 48번처럼ls를 쳐봤을 땐 다음 사진처럼 아무것도 뜨지않고 index.php로 넘어가게 된다. \만 넣었을 때도 필터링 되고 하니 특수문자를 섞어 ls를 필터링 우회 해야하는 것 같다. BurpSuite로 봤을때 html 에 값을 입력하면 풀리는 것 같다. ls를 필터링 우회하기 위해 '&l's>index/go.html 을 url 인코딩해서 #리눅스에서 작은따옴표란 변수명을 사용시에 변수명을 리턴하지 않고 변수명 그대로 사용하겠다는 의미[출처] [500]44번문제|작성자 학교탈출 html에 값으로 넣어주면 파일 목록이 뜬다. challenge44_PaSs_w0Rd__..
- Total
- Today
- Yesterday
- lob
- MySQL
- 웹해킹
- wargame
- ubuntu
- Python
- C
- 0xdeadbeef
- cobolt
- my-pass
- attackme
- ftz
- lord of sqlinjection
- wargame.kr
- 설치
- WebHacking
- Los
- java
- BOF
- 자바
- Lord of SQL Injection
- 명령어
- 워게임
- 1번
- webhacking.kr
- 우분투
- pwnable.kr
- c언어
- pwnable
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |