影像笔记 默认存储_CTF自学笔记(三)跨站脚本攻击[一]

128fceaff0a3efbd358ab3b19685c838.gif

点击上方蓝字关注!

注:本篇文章为个人学习笔记仅供学习交流。

ecf211dcc1d17b53ea7545d7e895cd2f.gif


概述

跨站脚本攻击,通常称为XSS,是一种通过代码注入的网站应用程序安全漏洞。攻击者可以通过向网页中注入恶意代码,导致用户浏览器在加载网页,渲染HTML时就会执行恶意代码。(本篇示例在pikachu漏洞练习平台演示,搭建教程见下篇。)

常见XSS漏洞

1.反射型XSS 攻击者输入xss代码,提交给服务器,服务器解析后,在响应中返回输入的xss代码,最终由浏览器执行,具体见下面示例。 反射型xss(get) 先输入1,查看一下URL的变化,由于输入框限制输入长度,所以在URL框输入xss代码。

e90a11d034d9b1b1f3027548f6512db6.png

将1改为如下代码,回车后就出现了弹窗。
<script>alert('黑客帮')script>

8bae5323dafce7442386566e0fd886ae.png

反射型xss(post) 登入框插入不了xss,所以先登录账号密码admin/1234546然后直接在输入框输入同上的xss就行了。

719565597a107ec22d775f0ec2a3a3e8.png

2.存储型XSS 存储型xss提交的xss代码会存在服务端,,下次无论是自己还是别人请求页面时会自动执行xss代码,存储型xss的典型应用有留言板,在线聊天室,邮件服务等。 还是插入相同的代码,点击submit即可将代码插入服务端,下次刷新也会出现弹窗。

119706d3a6d330339c955c482a4b3130.png

6b024b89d45b72f889fea48fa4e56160.png

3.DOM XSSDOM xss的代码不需要服务端解析响应的直接参与,触发xss的是浏览器端的DOM解析器。同样先测试一下代码,并打开源代码查看。很明显是无法执行xss的。

403e984ba5752dcf934d5109800d0b53.png

换一种方式,闭合引号,用onclick,见下方代码。然后点击click me!,在源代码可以看到xss代码,然后点击what do you see?即可看到弹窗。
' onclick="alert('黑客帮')">

3de8fc5504dd1283496935381475cd99.png

0ed8cffae927268142827c9e1da83fa6.png

其他类型XSS通关 xss之盲打 所谓盲打,顾名思义就是有输入框就输入xss的代码。

733c753281fb1327f078b085a3c7479c.png

登录后台,即可看到弹窗。http://127.0.0.1/pikachu-master/vul/xss/xssblind/admin.php

1cd9adca690e421a0241631a88654f9a.png

xss之过滤 大小写过滤
<ScriPT>alert('黑客帮')ScriPT>

b9861466b7f710c12c70bc89f0845b06.png

xss之htmlspecialchars htmlspecialchars()是PHP里面把预定义的字符转换为HTML实体的函数 预定义的字符是 & 成为 &amp " 成为 &quot ' 成为 ' < 成为 &lt > 成为 &gt 可用引号类型 ENT_COMPAT:默认,仅编码双引号 ENT_QUOTES:编码双引号和单引号 ENT_NOQUOTES:不编码任何引号 所以,我们先测试一下,输入' " <>666后,查看源代码可知,单引号没被编码,说明后端用的默认的htmlsspecialchars函数做处理。

987afcf7effc2f3026616683577e726f.png

所以,我们用如下代码即可。(点击蓝色字体即可弹出)
' onclick='alert(/hello/)'

81e4eb2c317a886243b50a0be3d375fa.png

xss之href输出 同样,我们可以输入一写字符进行测试,输入aa'"<>然后查看页面源代码,按Ctrl+F,搜索aa,可以发现这次的输出是在href中,但是这次代码将双引号进行了过滤,输出在a标签里的href属性,可以使用js协议来执行js。

ff08670769ad7f1f9e5e90cb9cde7c07.png

我们输入如下代码,然后点击蓝色字体。
javascript:alert(/黑客帮/)

92f80a7e4e56251f6552ab32305e612b.png

xss之js输出 先输入hello测试一下,查看发现,他将我们输入的字符存到了js代码里面然后进行判断,我们可以根据代码写一个闭合。如下:
'script><script>alert(/黑客帮/)script>

7d4281a801b5c96c15b4964c4c63e546.png

494c178f97086ed045b3d0c0c9794b9f.png

6990ee168aff32668bd99902bd9334ba.gif

- End -

eb84bbdf66d44badca7e5c9c5fef1dbc.png 往期推荐
  • CTF自学笔记(二)SQL注入攻击[一]

  • CTF自学笔记(二)SQL注入攻击[二]

  • CTF自学笔记(二)SQL注入攻击[三]

7247afeea8fda66df9ec043bdb04d298.png觉得不错,请点个在看

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值