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="입력값" ..
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__..
32번 문제는 투표 페이지 브루트포스 문제인데 들어가면 유저들의 목록이 뜨고 x/100 이렇게 투표가 되는걸 볼 수 가 있다. 맨 아래로 내려가면 Join이 있고, 이걸 눌러야 투표에 나를 추가할 수 있다.투표 목록에 있는 이름이나 숫자를 클릭하면 no!가 뜨고vote_check=ok; 라는 쿠키가 생성된다.그런데 아무리 눌러도 숫자가 증가하지 않는걸 보니 vote_check=ok; 라는 쿠키가 문제인 것 같다.쿠키를 삭제해가며 클릭해도 되지만Burp Suite를 이용해 풀어볼거다. 새로 알게 된 기능인데 Proxy 탭에서 Send to Repeater를 하면 반복작업을 할 수 있다. 그래서 쿠키를 vote_check=; 로 ok 부분을 삭제하고 Go를 누르면 숫자가 증가한다. Go를 99번 눌러서 99..
48번은 파일업로드와 MEMO를 동시에 할 수 있다.그래서 아무 파일이나 선택한 후 메시지를 써서 Send 하면 저렇게 보인다.다른 사람이 남긴 것도 볼 수 있는데, 파일의 이름은 3자리를 넘을 수가 없다.그래서 문서 폴더에 왜 있는지 모르는 hhh 파일이 있길래 업로드 해서 메모로는 hhh를 썼는데 하필 한글로 되어있어서 ㅗㅗㅗ가 됐다 ㅎㅎ upload file 을 눌러보면 내용과 상관없이 null이 뜬다. 그리고 Delete를 누르면 맨 위 사진과 같이 mode=del&time=1489222360 가 생긴다. Delete를 눌러야 뭔가 실행이 되는 것 같고rm (파일명) 이지 않을까 싶다.그렇다면 rm(파일명) ;(명령어) 를 해주면 될 것 같다.그래서 파일의 목록을 보기위해 파일명을 ;ls 로 해주..
43번은 webshell을 업로드 해서 푸는 문제인 것 같고 힌트는 file type이다. 파일을 선택하지 않고 제출 했을땐 wrong typre 이 뜨는데이 상태를 burp suite로 보면 비어 있는 filename="" 과 밑에 Content-Type이 보인다. php파일을 업로드 했을경우 access denied 가 뜨기 때문에파일 업로드 자체로는 php 파일을 업로드 할 수가 없어 보인다. 그래서 파일 이름은 아무거나.php로, Content-Type은 image로 바꿔주었다.text 형식도 가능한 것 같다. 끝~!
- Total
- Today
- Yesterday
- wargame
- pwnable.kr
- 파이썬
- MySQL
- 1번
- ubuntu
- Python
- c언어
- 설치
- 명령어
- my-pass
- 웹해킹
- webhacking.kr
- pwnable
- BOF
- cobolt
- Los
- attackme
- 0xdeadbeef
- java
- 자바
- lob
- wargame.kr
- Lord of SQL Injection
- lord of sqlinjection
- C
- 워게임
- ftz
- WebHacking
- 우분투
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |