2.xss
一、反射型XSS(get)
方法一:在输入框内输入测试代码
1.输入111,并提交
2.输入测试代码
发现<script>alert(/xss/)</script>
无法完整输入
3. 在前端修改输入的最大长度
3.1 单击右键,进行检查
发现最大长度只有20
3.2 修改输入框的最大长度,改为200,再进行输入
4.反射成功
方法二:直接在URL内修改
1.输入111,观察url变化
2.在url内输入测试代码,反射成功
<script>alert(1)</script>
二、反射型XSS(post)
get与post的区别在于,get可以直接在url上修改,但是post不行
1.用户名admin,密码123456,登录
2. 输入测试代码
<script>alert(1)</script>
三、存储型XSS
当再次回到这个存储型xss关卡时它仍会出现弹窗,这说明存储型xss是存储在服务器的数据库中的,也就是说存储型XSS能危害所有访问受影响页面的用户。
四、DOM型XSS
4.1 查看网页源代码
定位到what do you see的位置
4.2 源码分析
所以最终我们要在a标签里,把xss显示出来
测试代码'onclick=alert(0)>
五、DOM型xss-x
5.1 查看网页源代码,定位到相应位置
5.2 源码分析
5.2.1各类函数含义
window.location.search:?后面的URL(str: ?text=1111)
js中split()函数的用法
str.split(“text=”)[1]即将str在“text=”处分开,形成数组,数组中序列号为1(第二个)的字符串就是需要的内容
js中decodeURIComponent()代表对URI进行解码
/+/g:全局匹配加号字符
5.2.2 思路
最终目标是要在‘xss’中成功输入测试语句,
该条测试语句需要经过如下步骤:
- 在URL中获取?以及后面的字符
- 被"text="字符串分割成一个数组,取该数组中的第二个值并进行解码
- 解码完成后将所有的加号字符替换成空字符
- 能与a标签闭合,形成执行命令
5.3.3 测试语句进行测试
'οnclick=alert(0);'
- 输入该条语句
- 点击按钮,获取到编码以及replace之后的xss
- 点击“有些费尽心思····”
4.点击“就让往事···”,成功执行alert命令
六、XSS之盲打
6.1 输入测试语句
6.2 根据提示登录后台
6.3 登陆成功,出现弹窗
6.4 后台出现提交的内容
七、XSS之过滤
7.1 常规输入script测试语句
script标签被过滤
7.2 加入大写进行绕过
八、xss之htmlspecialchars
8.1 输入11,查看源码
8.2 在href内执行XSS,使前后两个单引号闭合
href=’ 'οnclick='alert(0) ’
九、xss之href输出
9.1 输入11,查看参数位置
9.2 尝试在href内输入xss执行语句
href=’ 'οnclick='alert(0) ',发现单引号被转义
9.3 利用a标签a href="javascript:js_method();"的属性输入执行语句
href=’ javascript:alert(0) ’
十、XSS之js输出
10.1 输入11,找到参数位置
10.2 尝试将前面的script闭合,再输入XSS执行命令
10.2 XSS攻击成功
</script><script>alert(0)</script>