실습> str_replace() 함수 사용하기
형식 :
str_replace("검색할문자열", "변경할문자열", "검색할대상");
str_replace() 변경 전
<?
$str = "Hello PHP!<br>";
echo $str;
?>
http://192.168.108.101/str_replace.php
Hello PHP!
str_replace() 변경 후
<?
$str = "Hello PHP!<br>";
// str 변수에서 "Hello" 문자열을 "Hi" 로 교체해서 str 변수에 저장한다.
$str = str_replace("Hello", "Hi", $str);
echo $str;
?>
http://192.168.108.101/str_replace.php
Hi PHP!
str_replace() 변경 전
<script> 태그로 변경한다.
<?
$str = "<script>alert('XSS');</script>";
echo $str;
?>
http://192.168.108.101/str_replace.php
화면에 알림창이 출력된다.
str_replace() 변경 후
<script> 태그로 변경하면 <script>를 제거해서 자바스크립트가 실행되지 못하도록 필터링 한다.
<?
$str = "<script>alert('XSS');</script>";
$str = str_replace("<script>", "", $str);
echo $str;
?>
str_replace("<script>", "", $str); 를 우회하는 공격코드를 작성한다.
<?
$str = "<<script>script>alert('xss');</script>";
//echo $str; // Hello PHP!<br>
$contents = str_replace("<script>", "", $str); // "<script>alert('xss');</script>";
echo $contents; // Hi PHP!<br>
?>
str_replace() 변경 후
< 문자를 < 로 변경한다.
$str = "<script>alert('XSS');</script>";
$str = str_replace("<", "<", $str);
echo $str;
<script>alert('XSS');</script> 메세지가 출력되지만 자바스크립트가 실행되지 않는다.
소스보기를 하면
<script>alert('XSS');</script> 로 표시하기 때문에 < 문자를 태그로 인식하지 못하게 무력화 시켰기 때문이다.
read.html 부분에 이 부분을 적용시키면 자바스크립트가 실행되지 않기 때문에 XSS 가 실행이 금지된다.
-- read.html --
:
:(생략)
<?=$row['contents']?>
<?
// <<script>script> 로 우회가 가능하다.
// $contents = str_replace("<script>", "", $row['contents']);
// $contents = str_replace("<", "<", $row['contents']);
// echo $contents;
:
:(생략)
-- read.html --
writeok.html 부분에 이 부분을 적용시키면 자바스크립트가 실행되지 않기 때문에 XSS 가 실행이 금지된다.
writeok.html 부분에 적용하면 read.html 에서 필터링 부분은 주석처리한다.
-- writeok.html --
:
:(생략)
// 필터링 부분
$contents = str_replace("<", "<", $contents);
$query = "INSERT INTO $id VALUES (
NULL, '$username',password('$passwd'),
'$title',
'$contents',
'$origfile',
'$remoteip',
now())";
:
:(생략)
-- writeok.html --
'Linux > 모의해킹' 카테고리의 다른 글
| CSRF 를 이용한 관리자 비밀번호 변경하기 (0) | 2022.01.25 |
|---|---|
| CSRF 를 이용한 게시판 글쓰기 1 (0) | 2022.01.25 |
| XSS 를 이용한 Victim 장악하기 (0) | 2022.01.25 |
| Adobe Acrobat Reader(pdf) 취약점을 이용한 침투 (0) | 2022.01.25 |
| XSS 취약점 찾기 (0) | 2022.01.25 |