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--+ 끝~
CSRF는 Cross-site request forgery의 약자로 사이트 간 요청 위조 또는 크로스 사이트 요청 위조를 뜻한다.XSS( 사이트 간 스크립팅) 을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 이용한 것이라면,CSRF는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다. 1. 발생 원인- 개별 링크와 폼이 사용자 별로 예측 가능한 토큰을 사용할 때-> 예측 불가능한 토큰이 있으면 공격자는 요청 메시지를 변조할 수 없고, 예측 가능한 토큰이 있으면 요청 메시지를 변조할 수 있다.- 인증이나 세션, 쿠키 등 모든 웹사이트에서 인증된 사용자가 보내는 데이터는 정상적인 경로를 통한 파라미터 요청으로 판단-> 정상적인 요청과 비정상적인 요청을 구분하지 못한다. 2. 공격 ..
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="입력값" ..
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
- 0xdeadbeef
- WebHacking
- 우분투
- attackme
- 워게임
- c언어
- 명령어
- Los
- webhacking.kr
- 설치
- 자바
- pwnable
- lord of sqlinjection
- 파이썬
- MySQL
- pwnable.kr
- java
- BOF
- 1번
- Python
- wargame
- ubuntu
- Lord of SQL Injection
- wargame.kr
- lob
- my-pass
- ftz
- cobolt
- C
- 웹해킹
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |