일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹해킹 기초
- 인공지능
- Bandit
- burp suite
- hackthissite
- overthewire
- 정보보안
- 웹해킹
- web-server
- XSS GAME
- Wargame
- pythonprogramming
- lord of sqlinjection
- 개발자
- root me
- write up
- SQL Injection
- WebHacking
- CTF
- 사이버보안
- web hacking
- 테크트렌드
- Over The Wire
- 웹개발
- sql injection bypass
- 코딩
- system hacking
- geminipro
- 프로그래밍
- webhacking.kr
- Today
- Total
목록web hacking (10)
컴맹에서 컴공 그리고 화이트 해커가 되는 그날까지

webhacking.kr old-42번 문제를 들어가면 위와 같은 table구조가 나오게 된다. 일단 download를 하나씩 눌러보았다. test.txt 쪽의 [download]는 test.txt를 다운로드할 수 있었고 flag.docx는 Access Denied라는 alert가 발생했다. 그래서 개발자 도구를 열어 소스코드를 검사해 보았다.그랬더니 test.txt의 앵커 태그에서는 "?down=dGVzdC50eHQ="라고 되어 있었고 밑에 flag.docs의 앵커 태그는 그냥 "Access Denied"가 실행되게 해 놓았었다. 따라서 flag.docx를 얻기 위해서는 test.txt의 앵커 태그를 수정해서 flag.dcx를 다운로드하면 되겠단 생각이 들었다. 그런데 저기 "dGVzdC50eHQ="이..

문제의 화면이다.'Content is not the only part of an HTTP response!'번역하면 '콘텐츠만이 HTTP 응답의 일부는 아닙니다!' 콘텐츠만이 HTTP 응답의 일부가 아니라는 게 무슨 뜻일까?바로 burp suite를 사용해 패킷을 잡아 보았다.응답을 보내자 다음과 같이 답변이 왔고 여기서 'Header-RootMe-Admin : none'이라는 게 있었다.이것을 Request에 추가한 뒤에 'none'을 'admin'으로 수정해서 다시 응답을 보냈다. 그러자 다음과 같이 패스워드 값을 주게 되었다!

슬슬 해킹스러운 문제가 나오는 구만!이라는 생각이 드는 문제였다. 문제 사이트에는 이렇게 ip주소를 입력하는 입력창과 제출 버튼이 나와있다. 이번 문제도 burp suite를 사용하여 패킷을 받았다. 이렇게 되어 있었고 ip 입력창에 127.0.0.1을 입력하고 다시 패킷을 받아 보았다... 그랬더니.. 이렇게 ip=127.0.0.1이 생기고 결과 값이 반환되었다.문제의 이름이 PHP-Command injection 인 만큼 이번 문제의 힌트와 해결할 수 있는 방법은command injection을 사용하는 것이다. 이 문제에서 명령어 주입(command injection)이 발생할 수 있는 이유는 다음과 같다.사용자 입력 검증 부족:이 코드에서 사용자는 ip 필드에 임의의 값을 입력할 수 있으며, ..

Admin is really dumb...관리자는 정말 멍청하네요...ㄷㄷ... 챌린지 화면이다. Wrong user-agent: you are not the "admin" browser!잘못된 사용자 에이전트: "관리자" 브라우저가 아닙니다!이라고 한다... 바로 burp suite로 패킷을 잡아보자 User-Agent가'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36' 라고 한다. 이걸 'admin'으로 수정해서 send 해서 Response를 받아보았다.... 그랬더니 이렇게 'Welcome master'이라는 문장과 함께 Password값이 ..

LORD OF SQLINJECTION은 문제를 풀다 보면 알 수 있지만 계속 단계를 거듭할수록 전 단계에서 사용했던 기술들을 활용하는 점에서 공부하는데 굉장히 큰 도움이 되는 것 같다. 이번 문제 역시 전 단계들을 풀면서 활용했던 기술들을 사용하는 문제이다. 우선 'or', 'and' 그리고 이번에는 '=' 이것도 필터링이 되었다. '='은 'like'를 사용하여 필터링을 우회하였다. 첫번째로 Hello admin을 띄워보자면 ?pw=123%27%20||%20id%20like%20%27admin# query : (select id from prob_golem where id='guest' and pw='123' || id like 'admin') 또는 ?pw=123%27%20||%20id%20like%2..

이 문제의 php 코드를 살펴보니 뭔가 지금까지의 스킬이 짬뽕되어 있는 것처럼 보인다. 전단계의 darkelf에서 사용했던 것 그대로 사용하면 될것 같고 여기서 주목해야 할 코드는 역시 이 부분인 것 같다. result[ 'pw' ] 와 GET으로 받은 패스워드가 일치해야 문제가 풀리는 blind sql injection 문제다. 이 부분은 orge 단계까지 온 사람이라면 어디서 본 기역이 있을 것이다. 바로 orc문제이다. orc 단계에도 위에 보이는 php 코드처럼 패스워드가 일치해야 문제가 풀리는 방식이었다. 그럼 이제 본격적으로 문제를 풀어보자 우선 Hello admin 까지 출력하고 이제 pw의 길이를 한번 찾아보자 ?pw=123%27%20||%20id=%27admin%27%20%26%26%20..

darkelf 문제도 그전 문제인 wolfman과 비슷한 문제이다. 그러나 이번에 무엇이 필터링 되었는지 살펴보면 이번에는 공백이 아니라 or, and 같은 논리 연산자들이 필터링되었다. 이번에도 구글의 도움으로 필터링 우회를 찾아보면 'or'은 '||' 로도 사용할 수 있다는 사실을 알게 되었다. 그럼 이번에도 필터링 우회 sql injection을 작성해 보면 "?pw=123' || id = 'admin' -- " 이렇게 된다. --(주석처리) 뒤에는 공백이 있어야 주석처리가 되기 때문에 이 부분을 주의하자! 완성된 sql injection 구문을 넣으면 DARKELF 클리어!

wolfman 단계의 화면이다. 쿼리: id='guest' 및 pw=''인 prob_wolfman에서 id 선택이라는 글과 php코드가 있다. 여기서 $query 문을 위에 글로 설명해 놓은 것 같다. id='guest' 및 pw=''인 prob_wolfman에서 id 선택 그리고 만약 id == 'admin'이라면 문제가 해결된다. 그럼 우리는 pw에 값을 넣을 수 있기 때문에 sql injection을 사용하여 pw=123 넣어주고 id='admin' -- (주석처리)를 해주면 sql injection이 발생하여 문제가 풀릴 거라 생각했다. 그래서 ?pw=123' or id = 'admin' -- ' 이렇게 처리했더니 다음과 같이 공백 없음 ~_~이라는 글이 나왔다. php코드를 보니 공백을 필터링해..