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

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코드를 보니 공백을 필터링해..

SQL INJECTION이란 말과 함께 입력할 수 있는 칸과 view-source가 있다. 이번 문제는 SQL INJECTION 취약점을 이용하는 문제인 것 같다. 일단 소스코드를 보자 밑에 GET ['no']에 대한 php를 살펴보면 sql injection 문제답게 sql injection 필터링이 되어 있다. 필터링을 우회하여 문제를 해결해야 하는 것 같다. 일단 아이디가 guest라고 하면 guest가 출력이 된다고 한다. 그리고 아이디가 admin이면 문제가 풀린다. 그리고 주석으로 admin의 no = 2라고 한다. 그럼 "select id from chall27 where id='guest' and no=({$_GET['no']})" 이 부분을 sql injection 공격을 해야 하는 부분..

12번 문제 javascript challenge라고 적혀있다. 바로 계발자 도구 (f12)를 눌러서 확인해보자. ....? 이상한 이모티콘들이 적혀있는 다... 뭔소리여... 구글링을 해서 알아보니 저건 aadecode라는 것으로 코드를 이모티콘 모양으로 암호화해 놓은 것이다. 구글에 aaencode decoder라고 검색해서 디코더 사이트에 들어가서 복사한 내용을 붙여 넣기 하면 요렇게 정상적인 코드가 나온다. 아마 저 charCode(enco들을 해석해서 webhacking.kr/challenge/code-3/(코드해석).php를 하면 문제가 풀릴 것이다. 코드 해석은 f12를 누르면 보이는 콘솔 창에서 해보면 된다. 와우 'youaregod~~~~~~!'가 나왔다. 문제를 해결했다! 굿굿굿~!

파일 다운로드 취약점을 이용한 문제였다. 접속정보를 받고 접속을 해보니 Home, Upload My Memo 그리고 Your uploaded memos 라고 되어있었다. Upload My Memo에 가서 보니 내가 업로드할 수 있는 창이 나왔다. 분명 파일 다운로드 취약점이라 했는데.... 내가 왜 업로드해야 하지 하고 Filename에 first, Content에 first 라고 입력한 뒤에 Upload해 보았다. Home에 first가 생겼고 눌러보니 first 내용도 적혀 있었다. 어떻게 하지 고민하다 파일 이름을 적는 칸에 ../를 넣어보았다. 그 결과 bad characters,,라고 되었다. 그럼이제 이 문제를 어떻게 풀어야 할지 감이 잡히기 시작했다. 제목에 취약점을 적어서 flag.py파일..

마지막 6단계까지 와버리고야 말았다. 복잡한 웹 응용 프로그램은 때때로 URL 매개 변수의 값이나 location.hash의 일부를 기반으로 자바스크립트 라이브러리를 동적으로 로드하는 기능을 가지고 있다. 스크립트나 기타 잠재적으로 위험한 유형의 데이터(예: XMLHttpRequest)를 로드할 때 사용자 입력이 URL에 영향을 미치도록 허용하면 심각한 취약성이 발생하는 경우가 많습니다. 문제 목적: 응용 프로그램이 경고()를 실행하는 외부 파일을 요청하도록 만드는 방법을 찾습니다. 화면에는 Couldn't load gadget from /static/gadget.js라는 글이 적혀 있다. 소스코드를 보니 This will totally prevent us from loading evil URLs! (이..

5단계를 보자 xss는 단순히 데이터를 정확하게 유출하는 것만이 아닙니다. 때때로 공격자는 DOM에 새로운 요소를 주입하지 않고도 나쁜 일을 할 수 있다. Groovy Reader 2.0 Sign up for an exclusive Beta. 이렇게 있다 Sign up을 눌러보면 email을 넣을 수 있고 Next >> 를 누르면 서명해 줘서 고맙다는 말이 나온다. 문제 설명에서 DOM에 새로운 요소를 주입하지 않고도 나쁜 일을 할 수 있다. 라는 말로 봤을때 email을 작성하는 부분에 xss 공격을 해도 아마 안될 것 같다는 생각이 드는데... signup.html 코드에서 We're ignoring the email, but the poor user will nerver know! 라고 하는걸로 보..

4단계 4단계를 살펴보면 미션 설명: 사용자가 제공한 모든 데이터는 해당 데이터가 나타날 페이지의 컨텍스트에서 올바르게 이스케이프 되어야 합니다. 이 레벨은 그 이유를 보여준다. 미션 목표: 밑에 단계와 동일하게 alert()를 발생시키면 된다. 일단 화면에 timemer이 써져있고 밑에 숫자 3이 적혀 저 있다 Create timer을 누르면 다음과 같은 화면이 나온다. 타겟 코드를 살펴보자 타겟 코드에서 timer.html을 살펴보면 이렇게 되어있는데 타이머의 시간이 {{ timer }} 이렇게 들어간다 그럼 어떻게 코드를 넣으면 XSS 공격을 성공시킬 수 있을까 고민해 보면 "startTimer('1');onerror=alert('1');" /> 이렇게 되면 XSS 공격이 성공할 것이다. 즉 htt..

2단계 미션 설명: 웹 응용 프로그램은 종종 사용자 데이터를 서버 측 및 점점 더 클라이언트 측 데이터베이스에 보관하고 나중에 사용자에게 표시합니다. 이러한 사용자 통제 데이터가 어디에서 나오든 신중하게 처리해야 한다. 미션 목표: 스크립트를 삽입하여 응용 프로그램의 컨텍스트에서 경고()를 팝업 합니다. 참고: 이 응용 프로그램은 게시물을 저장하므로 경고를 실행하기 위해 코드를 몰래 입력하면 경고를 다시 로드할 때마다 이 수준이 해결됩니다. 우선 1단계와 같이 를 입력 후에 share status! 를 눌러보자! 한국 표준시가 입력되었다??? 아마 가 코드상 필터링되어있는 것 같다. 그렇다면 다른 방식으로 경고창을 띄워야 할 것 같은데... 힌트를 보자! This level is sponsored by ..