Web For Pentester 学习笔记 - XSS篇

XSS学习还是比较抽象,主要最近授权测的某基金里OA的XSS真的实在是太多了,感觉都可以做一个大合集了,加上最近看到大佬的博客,所以这里我也写一个简单的小靶场手册,顺带着也帮助自己把所有XSS的方式给温习一遍。

Example1:(简单无过滤)

php 
        echo $_GET["name"];
?>

页面没有过滤任何参数,想传啥就传啥,可以直接传参

example1.php?name=

Web For Pentester 学习笔记 - XSS篇_第1张图片

 

 

 

Example2:(简单参数屏蔽)

php
         
        $name =  $_GET["name"];
        $name = preg_replace("/两个参数进行了屏蔽,但是没有做大小写限制,因此可以直接通过大小写的方式绕过

example2.php?name=

Web For Pentester 学习笔记 - XSS篇_第2张图片

 

 

Example3:(大小写参数屏蔽)

php
         
        $name =  $_GET["name"];
        $name = preg_replace("/cript>

Web For Pentester 学习笔记 - XSS篇_第3张图片

 

Example4:(Script屏蔽)

if (preg_match('/script/i', $_GET["name"])) 
{
die("error"); }

这时候就不能出现任何script语句,因此使用上述example3上的例子:使用img方式弹出

example4.php?name= 

Web For Pentester 学习笔记 - XSS篇_第4张图片

 

 

Example5:(alert屏蔽)

if (preg_match('/alert/i', $_GET["name"])) 
{
  die("error");
}

例子5出现了对任意大小写alert的限制,因此需要使用其他方式,这里使用prompt或者confirm来弹窗

example5.php?name=
example5.php?name=

Web For Pentester 学习笔记 - XSS篇_第5张图片

 

 

Example6:(闭合双引号绕过)

直接在js语句中GET["name"] 这样子是有巨大风险的,可以直接输入命令绕过

example6.php?name=";alert(/xss/);"

Web For Pentester 学习笔记 - XSS篇_第6张图片

 

 

Example7:(单引号绕过)

首先,htmlentities() 函数是把字符转换为 HTML 实体,因此可以使用单引号绕过’

example7.php?name=';alert(/xss/);'

Web For Pentester 学习笔记 - XSS篇_第7张图片

 

Example8:(PHP_SELF)

php 
  require_once '../header.php'; 

  if (isset($_POST["name"])) {
    echo "HELLO ".htmlentities($_POST["name"]);
  }
?>
$_SERVER['PHP_SELF']; ?>" method="POST"> Your name:

这段代码 一种是通过post方式输入,然后通过htmlentities实体化,这种方式单引号绕过便会失效

但是后面还有一段 

我们可以想办法,把" method="POST">这个给注释掉,然后这样子的话在from里面就可以执行xss

因此执行

example8.php/">//

Web For Pentester 学习笔记 - XSS篇_第8张图片

 

Example9:(location.hash)

require_once '../header.php'; ?>

require_once '../footer.php'; ?>

首先依旧在script内,且执行了location.hash.substring(1)

查阅相关资料可知:hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分)

因此可构建payload

example9.php#

后面查阅资料发现只有IE才能弹出,无奈macos只有chorme和firefox无法测试orz

 

XSS篇到此结束

 

参考文档:

 

国光大佬的学习记录:https://www.sqlsec.com/2020/05/pentesterlab.html

W3school:https://www.w3school.com.cn/jsref/prop_loc_hash.asp

CTF中PHP知识汇总:https://www.restran.net/2016/09/26/php-security-notes/

 

 

  

你可能感兴趣的:(Web For Pentester 学习笔记 - XSS篇)