2022. 7. 17. 22:18ㆍ22-여름방학/웹 해킹(WEB HACKING)&웹 기초
HTML Injection – reflected (GET)
HTML Injection – stored (Blog)
Quest. 분명 당신은 검색 창에 아무 의미도 없는 값을 입력했습니다. 하지만 burp suite라는 취약점 분석 도구를 통해 아래의 유의미한 결과를 출력할 수 있게 되었습니다. 이 도구를 통해 아무 값을 입력하여 아래 두 번째 사진과 같이 출력하세요.
- 난이도 low
hint1. GET 방식과 다르게 POST 방식은 전송되는 변수 값이 보이지 않습니다. 하지만 burp suite를 이용한다면 클라이언트에서 서버로 전송되는 값이 모두 보입니다. 이걸 이용하여 값을 조작해봅시다.
<h1>SUCCESS</h1>
<img src=http://192.168.37.128/bWAPP/images/bee_1.png>
태그 입력
- 난이도 medium
-hint1. 페이지 소스 코드를 확인해봅시다.
<p>Enter your first and last name:</p>
<form action="/bWAPP/htmli_post.php" method="POST">
<p><label for="firstname">First name:</label><br />
<input type="text" id="firstname" name="firstname"></p>
<p><label for="lastname">Last name:</label><br />
<input type="text" id="lastname" name="lastname"></p>
<button type="submit" name="form" value="submit">Go</button>
</form>
우리는 form의 정보가 htmli_post.php로 전달됨을 알 수 있습니다.
-hint2. htmli_post.php 파일에 include("functions_external.php");라는 코드가 있습니다.
일부 함수를 functions_external.php 파일에 저장하는 듯 합니다.
-hint3. <과 >을 인코딩 했는데도 여전히 풀리지 않습니다. 더블 인코딩에 대해 알아봐야 할 것 같습니다.
터미널에 cd /var/www/bAWPP을 입력한 후 vim htnli_get.php을 입력한다.
인코딩 되어있기 때문에 더블인코딩을 해주면 된다.
- 난이도 high – 풀 수 없는 이유를 설명하세요.
hint1. 서버에서 변수를 처리할 때 값을 조작하는 것 같습니다. php 파일을 살펴보면서 변수가 전달되는 과정을 지켜보면 답이 나올 듯 합니다.
post는 htmlspecialchars함수를 사용하기 때문에 high를 풀 수 없다.
Quest. HTML Injection stored이 무엇인지 간단하게 정리하시오.
공격자가 서버에 태그/스크립트를 저장시켜, 클라이언트가 게시판을 읽을 경우 태그/스크립트가 실행되는 방식이다. 웹-게시판에 공격자가 인젝션한 코드를 사용자들이 실행되게 한다.
Quest. 문제 페이지에 코드를 삽입하여 아래와 같이 이전 QUEST인 html injection - reflected (POST)를 해결하세요.
- 난이도 low
hint1. 우리가 배운 범위 내에서 해결할 수 있습니다.
hint2. form 태그를 사용해보세요.
hint3. form 태그를 이용해 reflected (POST) 문제 페이지로 전송해보세요.
bee를 입력하면 아래에 entry가 생기는 것을 확인할 수 있다.
<h1>SUCCESS</h1>
<img src="./images/bee_1.png">
를 입력하면 위와 같은 entry에 표시되는 것을 확인할 수 있다.
<form method="POST" action="/bWAPP/htmli_post.php">
<p>
<label for="firstname">First name:</label>
<br>
<input id="firstname" type="text" name="firstname">
</p>
<p>
<label for="lastname">Last name:</label>
<br>
<input id="lastname" type="text" name="lastname">
</p>
<button value="submit" name="form" type="submit">Go</button>
</form>
form태그를 입력창에 입력하면 아래와 같이 entry가 입력되는 것을 확인할 수 있다.
위의 사진처럼 뜨는 entry에서 first name에 <h1>SUCCESS</h1>을 입력하고, last name에 <img src="./images/bee_1.png">를 입력하면 아래와 같은 화면이 나온다.
- 난이도 medium – 풀 수 없는 이유를 설명하세요.
hint1. 서버에서 변수를 처리할 때 값을 조작하는 것 같습니다. php 파일을 살펴보면서 변수가 전달되는 과정을 지켜보면 답이 나올 듯 합니다.
<form method="POST" action="/bWAPP/htmli_post.php">
<p>
<label for="firstname">First name:</label>
<br>
<input id="firstname" type="text" name="firstname">
</p>
<p>
<label for="lastname">Last name:</label>
<br>
<input id="lastname" type="text" name="lastname">
</p>
<button value="submit" name="form" type="submit">Go</button>
</form>
이 코드를 입력하면 위와 같이 출력된다.
htmli_sorted.php 파일의 코드를 확인하면 htmlspecialchars함수를 확인할 수 있다.
'22-여름방학 > 웹 해킹(WEB HACKING)&웹 기초' 카테고리의 다른 글
웹해킹_3주차 정리 (0) | 2022.07.24 |
---|---|
웹기초_3주차 정리 (0) | 2022.07.24 |
웹기초_2주차 정리 (0) | 2022.07.17 |
웹해킹_1주차 (0) | 2022.07.12 |
웹기초_1주차 정리 (0) | 2022.07.10 |