0x01、Insecure DOR (Change Secret)
同 XSS - Stored (Change Secret)
Low
仔细观察页面, 发现隐藏一个input标签, 作用是输入用户名, 并且配合提交的修改密码, 完成修改用户密码的操作:
这里就可以利用该用户名input标签达到修稿任意用户密码的攻击,
修改login的input标签类型(type)为text:
然后就可以修改任意用户的密码了:
Medium&High
使用了随机生成的token验证当前login 的用户:
0x02、Insecure DOR (Reset Secret)
观察HTML源代码, 发现按钮有一个JS事件:
事件代码为:
function ResetSecret()
{
var xmlHttp;
// Code for IE7+, Firefox, Chrome, Opera, Safari
if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
// Code for IE6, IE5
else
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.open("POST","xxe-2.php",true);
xmlHttp.setRequestHeader("Content-type","text/xml; charset=UTF-8");
xmlHttp.send("<reset><login>bee</login><secret>Any bugs?</secret></reset>");
}
观察到<reset>中的用户名也是同上一题一样, 可以达到任意用户的目的。
0x03、Insecure DOR (Order Tickets)
模拟了一个下单的功能:
仔细观察HTML源码, 发现票的单价放在在前端:
Low
修改ticket_price的价格为0:
达到0购的支付漏洞。
Medium&High
这时候票的单价就定义在服务端了, 而不是交给前端, 安全得多: