PHP-代码审计-XSS
文章目录
- XSS防御函数
- XSS挖掘流程
- 黑盒挖掘
- 白盒挖掘
- DVWA白盒挖掘演练
- 储存型
- 反射型
- xss利用姿势复习
XSS防御函数
htmlentities() 函数
把字符转换为 HTML 实体:
<?php
$str = "<? W3S?h????>";
echo htmlentities($str);
?>
<?php
$str = "Bill & 'Steve'";
echo htmlentities($str, ENT_COMPAT); // 只转换双引号
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // 转换双引号和单引号
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); // 不转换任何引号
?>
XSS挖掘流程
黑盒挖掘
- 直接像渗透一样挖掘即可,因为XSS通常是可以黑盒挖掘出来的
白盒挖掘
漏洞产生条件
- 用户输入参数:GET POST …
- 函数
- 输入到输出是否有过滤?
漏洞爱产生的位置
- 发文章处
- 回复评论处
- 用户昵称签名处
- 注册修改资料处
- …
DVWA白盒挖掘演练
储存型
基本流程
- 寻找未过滤的输入点,和未过滤的输出函数
- 寻找最终输出点
- 可以猜,或者老老实实哪里有操作过这个数据,使用表名,字段名去代码里搜
- 观察可能出现xss漏洞的目录
寻找未过滤的输入点,和未过滤的输出函数
可以看到过滤不完整,只过滤了一个变量
并且向表guestbook中插入数据
所以该处存在漏洞
- 寻找最终的输出点,因为最终的输出点可能完全不在一个业务流上
- 所以我们可以使用表名,字段名,去代码里搜索
- 图中随便打开一个
- 可以看到该位置最终输出了用户输入的参数
- 看第二个框,他有条件的,如果安全级别为impossible,则都过滤一下
- 所以得出结论:我们一定要追踪到最后的输出点,否则你不知道他到底过滤没
- 第三个框则是输出到html里面了
所以我们可以根据条件,判断,输入到输出到底过滤没,到底用了什么过滤,是否可以用什么方法绕过,这比黑盒审计更方便,因为我们知道了过滤规则,直接上相应的方法即可
反射型
基本流程
- 寻找带有未过滤的参数,且这些参数传到输出函数
- 根据输出函数对输出内容回溯输入参数,观察是否过滤
- 输出函数列表: print,print_r, echo, printf, sprintf, die ,var_dump, var_export
初级
存在输出函数echo
输出函数中包含输入参数,回溯
该函数参数输入到输出没有任何过滤
中级
- 存在输出函数echo
- 输出函数中包含输入参数,回溯
- 该函数参数输入到输出吧script过滤为空
- 但是可以用 其他标签绕过,过滤不完整,如onclick
高级
- 存在输出函数echo
- 输出函数中包含输入参数,回溯
- 该函数参数输入到输出用正则吧script和周围过滤为空
- 但是可以用 其他标签绕过,过滤不完整,如onclick
安全级别
- 输出函数中包含输入参数,回溯
- 该函数参数输入到输出 用htmlspecialchars实体化
- 安全
xss利用姿势复习
利用姿势
由于利用姿势很多,这里只复习一下获取cookies
获取cookies
- 首先我们要获取登陆后的页面
- 将cookie攻击语句的payload插入到存在xss漏洞的位置
写一个接受cookie的平台
- 获取到cookie以后
- 使用firebug输入cookie
- 然后再访问登陆后的页面就直接登陆上去了
PHP-代码审计-XSS相关推荐
- 代码审计XSS 0day
个人技术能力问题,先从xss挖! 步骤一:使用rips进行自动化审计 感觉这个好搞 步骤二:使用vscode看 Rips提示57行有洞 复制出来看: echo '<div id="do ...
- 【干货】XSS知识总结
公众号:白帽子左一 XSS基础 跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种.它允许恶意用户将代码注入到网页上,其他 ...
- xss跳转代码_从某cms的xss漏洞来学习代码审计
原创: xiaoyuer 合天智汇 各位大佬好,小弟的文章主要是通过针对具体的cms(内容管理系统)对一些基本的web漏洞进行挖掘和代码审计,这样学习起来能够理解的更加深刻.如有写的不对的地方请轻拍. ...
- html%3ca%3e标签中有变量,经过代码审计找出网站中的XSS漏洞实战(三)
1.背景 笔者此前录制了一套XSS的视频教程,在漏洞案例一节中讲解手工挖掘.工具挖掘.代码审计三部份内容,准备将内容用文章的形式再次写一此,前两篇已经写完,内容有一些关联性,其中手工XSS挖掘篇地址为 ...
- 代码审计之Catfish CMS v4.5.7后台作者权限越权两枚+存储型XSS一枚
首先本地搭建环境,我所使用的是Windows PHPstudy集成环境.使用起来非常方便.特别是审计的时候.可以任意切换PHP版本. 本文作者:226safe Team – Poacher 0×01 ...
- PHP代码审计DVWA[XSS (DOM)]
XSS (DOM 靶场搭建可用蓝易云服务器
- PHP代码审计DVWA[XSS (Reflected)]
XSS (Reflected)反射型XSS 靶场搭建可用蓝易云服务器
- 【代码审计】LaySNS_v2.2.0 前台XSS跨站脚本漏洞
0x00 环境准备 LaySNS官网:http://www.laysns.com/ 网站源码版本:LaySNS_v2.2.0 程序源码下载:https://pan.lanzou.com/i0l38 ...
- DVWA之反射型XSS代码审计
目录 low medium high impossible 从整个cms的角度去分析这个漏洞 low 前端代码如下.定义了一个表单以get的方式发送请求形式为?name= .然后引用了一个$html的 ...
- php代码审计【24】齐博CMS xss 漏洞漏洞
一.以前安装过,我这先验证下漏洞 注册普通账号权限: 进入到会员中心的短消息: 这里给管理员发送短消息: 管理员登录后点击我们发的消息: 直接实际测试: 我们后台已经拿到cookie了 利用获取的c ...
最新文章
- Codeforces Round #504 E - Down or Right 交互题
- php 笔试 龙腾简合_记录面试龙腾简合-java开发工程师经历
- 大学计算机基础B这本书哪有,大学计算机基础b试卷
- SFB 项目经验-55-另类更新Exchange 2016 KB
- SAP Fiori Elements 公开课第二单元学习笔记:Fiori Elements 架构
- 【代码笔记】iOS-下拉选项cell
- Linux系统编程---17(条件变量及其函数,生产者消费者条件变量模型,生产者与消费者模型(线程安全队列),条件变量优点,信号量及其主要函数,信号量与条件变量的区别,)
- 35岁老半路程序员的Python从0开始之路
- (转) RabbitMQ学习之helloword(java)
- 为什么个体户做不大?
- java语言的主要特点有简单性,太厉害了!
- 数据结构课程设计:顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现...
- alot英文怎么读_alot...of是什么意思
- spring容器destory时没有调用destory-method解决方法
- 专利修改:ps换填充色
- mac版python3.7安装教程_M是什么意思_M的翻译_音标_读音_用法_例句_爱词霸在线词典...
- Howto: Download SLES or SLED Source Code
- php7 扩展 在哪下载,php7.0 redis扩展下载地址
- 【状语从句练习题】连词 + 过去分词
- Windows安装MySQL报错:由于找不到msvcr120.dll无法继续执行代码
热门文章
- ASP.NET MVC项目的创建
- openflow多级流表机制的优点?
- ASP.NET Core微服务(六)——【redis操作】
- ASP.NET Core微服务(三)——【跨域配置】
- Slave: received end packet from server, apparent master shutdown:
- phoenix kerberos 连接配置
- 1121 Damn Single (25 分)
- 关于mingw编译Qt时无法编译opengl es2(ANGLE)版本的问题
- spring的jar包以及相关的API文档的下载方式
- vue里碰到 $refs 的问题