XSS危害-XSS进行钓鱼的原理和实验演示
这个例子使用了存储型xss
使用的payload为hello
当用户访问含有存储型XSS漏洞的页面时,页面就会请求文件,这个页面会提示用户输入用户名密码
其代码如下将这个url发送给目标就可以了
http://192.168.43.5/pikachu/vul/xss/xss_stored.php
后台就会得到用户的用户名和密码
ⅩSS危害-ⅩSS获取键盘记录原理和实验演示
跨域
协议://子域名.主域名:端口/资源地址 当协议、主机(主域名,子域名)、端口中的任意一个不相同时,称为不同域 我们把不同的域之间请求数据的操作,成为跨域操作。同源策略
而为了安全考虑,所有的浏览器都约定了“同源策略”,同源策略规定,两个不同域名之间不能使用JS进行相互操作。比如:x.com域名下的 Javascript并不能操作y.com域下的对象。
如果想要跨域操作,则需要管理员进行特殊的配置 比如通过: header(" Access-Control-Aow- Origin:xcom")指定 Tips:下面这些标签跨域加载资源〔资源类型是有限制的)是不受同源策略限制的。<script src="">//js,加载到本地执行
< img src="">/图片 <link href="">//css < frame src="">/任意资源 同源策略是为隔离不同域的操作,可防止用户的敏感信息被窃取
获取键盘记录的js脚本
接收键盘记录的php代码
本例中使用存储型XSS作演示
使用的payload为hello
当用户访问页面 就会将其键盘操作记录下来,传到pkxss后台上
XSS盲打演示和原理分析
是一种XSS的应用场景
普通用户提交的payload不会返回到当前页面,会在后台管理员的页面上执行,来攻击管理员,属于一种存储型的XSS 比如一些用户反馈意见的页面XSS的过滤和绕过(fter& htmlspecialchars)
过滤和转换
0,前端限制绕过,直接抓包重放,或者修改htm前端代码1.,大小写,比如:< SCRIPT> aleRT(111) 2,pt> 为了应对后台对
编码
核心思路
后台过滤了特殊字符比如< script>标签但该标签可以被各种编码后台不一定会过滤 当浏览器对该编码进行识别时,会翻译成正常的标签,从而执行. url编码 可参考html编码 可参考
XSS绕过的技巧有很多,取决于你的思路和对前端的掌握程度
pre_replace
htmlspecialchars函数把预定义的字符转换为HTML实体 用法 $str = htmlspecialchars(string,flags,character-set,double_encode); 可参考 被转换的预定义的字符有:可用的引号类型:
ENT COMPAT-默认。仅编码双引号。
ENT_QUOTES编码双引号和单引号 建议使用 ENT_ NOQUOTES-不编码任何引号。
XSS常见防范措施
总的原则:输入做过滤,输出做转义
- 过滤:根据业务需求进行过滤,比如输入点要求输入手机号,则只允许输入手机号格式的数字
- 转义:所有输岀到前端的数据都根据输出点进行转义,比如输出到htm中进行htm实体转义,输入到js里 面的进行转义
XSS输出在hre案例分析
这个例子保对输出作了转义,对输入没有作过滤,存在漏洞
注意a标签中的href属性中可以执行js脚本如所以上例中的按需要对message进行过滤,只允许http/https开始的字符串,这样更加安全
XSS输出在js案例分析
在这里由于前端输入的变量需要嵌入js代码中,需要使用js转义
尤其是单双引号的转义