8번 문제를 풀어보기로 한다.
이 문제는 인터넷 익스플로러를 사용하는 것이 좋을 것 같다.
크롬에서 해봤는데 자꾸 에러가 난다.
1. 문제 확인
2. 소스 코드 확인
소스코드가 조금 긴 편이긴 한데, 여기서 중요한 코드만 뽑아보자면,
$result = mysqli_query($db,"select id from chall8 where agent='".addslashes($_SERVER['HTTP_USER_AGENT'])."'");
$ck = mysqli_fetch_array($result);
if($ck){
echo "hi <b>".htmlentities($ck[0])."</b><p>";
if($ck[0]=="admin"){
mysqli_query($db,"delete from chall8");
solve(8);
}
이 부분인 것 같다. 여기서 ck[0]이 admin일 때 문제가 풀리는 것이다.
여기서 ck는 $count_ck = mysqli_fetch_array(mysqli_query($db,"select count(id) from chall8"));
이 코드를 보면 알 수 있듯이 mysqli_fetch_array를 뜻하는 것을 알 수 있다.
또한 addslashes로 SERVER의 'HTTP_USER_AGENT'를 하는 것을 확인 할 수 있다.
______________________________________________________________________
결국은 SQL 인젝션 공격을 하라는 것이고
맨 처음에 guest로 나와있는데 이것을 admin으로 바꿔라는 소리이다.
_________________________________________________________________________
이때 사용하는 도구는 burp suit 이란 도구이다.
burp suit 다운로드 방법은 글을 써 놓았으니 참고 바란다.
https://security-blooming.tistory.com/9
Burp suit 다운로드 및 설치 방법
Burp suit 다운로드 방법에 대해서 살펴보자 일단 구글에 Burp suit 이라고 치고 해당 사이트인 PortSwigger에 들어간다. 들어가면 첫 화면으로 이렇게 나온다. 스크롤로 내리면 이렇게 버전이 나오는 것
security-blooming.tistory.com
그래서 일단은 burp suit을 키고 8번 문제에 들어가자.
그리고 컴퓨터에서 설정을 해야 할 것이 있는데 바로 프록시 설정이다.
여기서 프록시 설정을 켜준다.
그래서 해당 8번 문제에 다시 접속을 하면 이렇게 접속이 안되는 것을 볼 수 있다.
고급을 눌러서 안전하지 않음 사이트를 클릭한다.
그러면 Burp suit가 돌아가는 것을 확인할 수 있다.
Burp suit 카테고리에서 Proxy 카테고리를 선택해서 보면 이렇게 GET 요청이 온 것을 볼 수 있다.
여기서 우리는 User Agent를 변조해 줄 것이다.
insert into chall8(agent,ip,id) values('{$agent}','{$ip}','guest');
이것을 적어줘야 하므로
Headers 카테고리의 User-Agent에 5678', '1', 'admin'),('1 이렇게 넣어준다.
5678이나 1은 그냥 생각나는 아무 숫자나 문자를 적어주면 된다.
그리고 Forward를 해준다.
다시 8번 문제로 돌아가 확인해보면 다음과 같이 화면이 바뀔 것이다.
그래서 아까 넣어줬던 5678을 다시 User-Agent에 넣어주고 Forward를 해준다.
그러면 이렇게 풀린다.
'security > 웹 해킹' 카테고리의 다른 글
Webhacking.kr 42번 (0) | 2020.07.18 |
---|---|
Webhacking.kr 41번 (0) | 2020.07.16 |
Webhacking.kr 37번 [차후 다시 도전] (0) | 2020.06.09 |
Webhacking.kr 12번 (0) | 2020.06.09 |
Webhacking.kr 16번 (0) | 2020.06.09 |
댓글