代码审计–xss跨站脚本篇 – 作者:抽华子的灰鹿

xss跨站脚本代码审计:

漏洞介绍:

xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。

常见的输出关键字有:echo printf print print_r sprintf die var-dump var_export.

漏洞挖掘:

XSS漏洞比SQL注入更多,也更难防,经常出现在文章发表、评论回复、留言以及资料设置等地方,在通读代码的时候可以重点关注这几个地方。挖掘XSS的漏洞关键在于寻找没有被过滤的参数,且这些参数传输到输出函数,常见的输出函数有print、print_r、printf、spintf、echo、die、var_dump、var_export,所以我们只要寻找带有变量的这些函数即可。

一、储存型xss

此类xss是危害最大的,他会将恶意代码储存进数据库中

代码审计

1615289250_60475ba27e9684a609611.png!small?1615289251198

可以发现通过post方法传入参数

第二处,就是插入数据库,insert这个东西我们就很熟悉了,而且那条语句没做任何过滤处理

1615289260_60475bac589fd8c0fd326.png!small?1615289261088

可以看到第二个源码,直接输出用户储存的数据,会直接触发xss

验证

我们在火狐进行留言

1615289271_60475bb7c117a1a4737c9.png!small?1615289272632

再从谷歌进行访问,这就做到了,使用用户A来进行留恶意代码,让用户B去访问,就能造成弹窗

1615289281_60475bc104bd50d732272.png!small?1615289281716

二、反射型xss

代码审计:

get型

这个比储存型的简单多了,然后没有什么过滤

1615289299_60475bd390e90ad72ed1d.png!small?1615289300336

而且在最下边的还把用户输入的东西直接给输出出来

1615289311_60475bdfacaf8133eac00.png!small?1615289312416

post和get的差不多,只不过传参的方法变成了post

验证:

1615289323_60475beb21fcac98ed8f0.png!small?1615289323684

三、dom型

由于dom型现在是非常不常见了,所以咱们会利用方法就行,就是那几个事件型的标签

来源:freebuf.com 2021-03-09 19:30:05 by: 抽华子的灰鹿

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论