网安之web安全第三十八天

#知识点:

1、XSS跨站-过滤绕过-便签&语句&符号等

2、XSS跨站-修复方案-CSP&函数&http_only等

XSS绕过-CTFSHOW-361到331关卡绕过WP

前置知识:document.cookie是用来直接获取cookie的,window.location.href是获取跳转地址的。

316到326都是反射型XSS

316题无任何过滤

直接在框中输入用js代码写成的payload,就是把获取到的cookie直接跳转到我们设定的地址的get.php这个文件。然后在自己的服务器端创建一个get.php,里面写入下面的接受代码,用于接受cookie。而这个flag就是在cookie中。

317题把script标签过滤,换个标签即可。

这里开始就是涉及到标签的过滤了,XSS总结 - 先知社区 该链接里面有下面会用到的各种标签以及相关绕过知识。

注意:我们会用到一些事件,好让机器人(因为这个是靶场,所以是机器人去触发)去触发这个事件,然后就会执行后面的代码。我们在选择事件的时候尽量选择那些容易触发的事件,比如那些点击事件就不太行,因为机器人并不一定会点击。还有就是上面这个报错事件,在小迪演示的时候没有成功,这大概就是因为在靶场中有1这个图片,所以不会执行后面的代码。

318,319题过滤script和img标签,直接用svg标签通杀了。

320到326题过滤空格,把空格换成斜杠即可绕过

注意:这7道题都可以用上面svg加斜杠的payload去通杀不代表他们一样,他们每个题过滤的标签不同,因为有很多标签,每个题过滤一个标签加空格,这里svg正好是没有被过滤的标签,所以才可以通杀。

327到331为储存型XSS

327题无任何过滤,是储存型xss的实际应用。直接把跨站语句写入到邮件内容即可。

328题就不一样了,出现了注册、登录、用户管理的页面。

当我们注册一个账户之后就可以登录了,登录之后点击用户管理发现提示我不是管理员,下面的信息也是显示不了。那么同样的,假如我是管理员的话,当我点击用户管理这个页面时,就可以看到登录过的用户名和密码,那么作为入侵者,我将注册的账号密码改成获取cookie的js代码,当管理员看用户管理这个页面时就会触发js代码,这时我就可以在自己的服务器端收到cookie,然后抓包,利用获取到的管理员cookie来实现未授权访问得到flag。

329题存储型-失效凭据需1步完成所需操作

这个跟上一个不一样的就是我们获取到的cookie(其实这个题获取到的是seesionid,用的也是sessionid)他会失效,它有一个存活期,就算我们得到cookie立马去尝试未授权访问,发现还是不行,因为当你获取到这个cookie的时候它就已经失效了。通过上题我们可以知道它的flag就在页面中,于是我们就可以一步到位,直接一步获取到页面中的flag。

注意:通过本题我们可以知道XSS的功能不止可以获取cookie,还有很多功能,其中就有本题用到的获取网站源码。

这个代码第一行的”.laytable-cell-1-0-1”是flag那个位置对应的标签(其实就是仅管理员可见那个位置的对应的标签,因为flag就是在这个位置出现。)第二行就是把其中带有ctf和show字样的字段筛选出来,然后发送到指定位置。

330-存储型-借助修改密码重置管理员密码(GET)

这个题开始页面就多了一个修改密码的功能,并且通过抓包发现,当我们把密码改了之后,他会有一个数据包传输,说明只要管理员在登录的时候,只要访问这个地址的数据包就会改密码,并且传输方式为get。

注意这里用的是src,没有用window.location.href。因为改密码就要神不知鬼不觉的去,src不会有页面回显,另一个会跳转地址就不行。

利用下面的payload把密码改成123之后,我们直接就可以管理员登录,然后用户管理页面就有flag了。

331-存储型-借助修改密码重置管理员密码(POST)

这个跟刚才的没啥区别就是请求方式不一样,这个是post请求,payload改一下就行了。

接下来就是防御XSS的讲解

第一个就是自定义函数来进行过滤,过滤一些危险字符,以及转义& < > " ' 等危险字符

这个就要看过滤的程度了,都过滤了那就没办法了。

第二个就是HTTP-only的引用

php如何设置httponly-PHP问题-PHP中文网

设置httponly之后会导致获取的cookie不全或则获取不到

httponly可以在php-ini配置文件里面设置,当设置成1或者true时,那么利用这个PHP搭建的网站都将受到影响,这个是全局配置。如果是在文件里面配置的话,那么只有在在这个文件获取cookie时会受到影响。

httponly的原理是不让你利用JS把cookie读取到,当有这个httonly时,我们可以利用beef这个平台去获取cookie。还有就是如果不是全局配置设置的httponly,那么他就是在文件里面设置的。我们可以对那些没有设置httponly的文件去获取cookie。当然beef对于两个是通吃的。

第三个是csp的设置

Web安全2.3:CSP安全策略、Cookie、Session、同源策略、HTML DOM树_下列说法中对同源策略,csp和cors_Slash · Young的博客-CSDN博客

这个csp是比较厉害的,直白的说它可以控制数据的输入输出,比如我们在进行权限维持的时候把xss平台生成的跨站代码放到源码中用来获取管理员的cookie,然后直接右键抓包会发现这个跨站代码触发不了,直接就报错,也就不能像xss平台发送cookie。详细内容看链接。

那么这时我们绕不过的,只有找到这个设置的地方,把他删掉然后进行权限维持的操作,首先在源码中输入Content-Security-Policy进行全局收缩找到删除即可

第四个就是输入内容长度限制,实体转义等

实体转义就是说:比如把尖括号转义了,那么跨站语句也就不能正确执行了。

内容长度限制就是把输入的内容进行长度限制,那么我们的payload就会受到影响,payload写不全,那肯定也就gg。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaopeisec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值