文章目录

  • 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相关推荐

  1. 代码审计XSS 0day

    个人技术能力问题,先从xss挖! 步骤一:使用rips进行自动化审计 感觉这个好搞 步骤二:使用vscode看 Rips提示57行有洞 复制出来看: echo '<div id="do ...

  2. 【干货】XSS知识总结

    公众号:白帽子左一 XSS基础 跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种.它允许恶意用户将代码注入到网页上,其他 ...

  3. xss跳转代码_从某cms的xss漏洞来学习代码审计

    原创: xiaoyuer 合天智汇 各位大佬好,小弟的文章主要是通过针对具体的cms(内容管理系统)对一些基本的web漏洞进行挖掘和代码审计,这样学习起来能够理解的更加深刻.如有写的不对的地方请轻拍. ...

  4. html%3ca%3e标签中有变量,经过代码审计找出网站中的XSS漏洞实战(三)

    1.背景 笔者此前录制了一套XSS的视频教程,在漏洞案例一节中讲解手工挖掘.工具挖掘.代码审计三部份内容,准备将内容用文章的形式再次写一此,前两篇已经写完,内容有一些关联性,其中手工XSS挖掘篇地址为 ...

  5. 代码审计之Catfish CMS v4.5.7后台作者权限越权两枚+存储型XSS一枚

    首先本地搭建环境,我所使用的是Windows PHPstudy集成环境.使用起来非常方便.特别是审计的时候.可以任意切换PHP版本. 本文作者:226safe Team – Poacher 0×01 ...

  6. PHP代码审计DVWA[XSS (DOM)]

    XSS (DOM 靶场搭建可用蓝易云服务器

  7. PHP代码审计DVWA[XSS (Reflected)]

    XSS (Reflected)反射型XSS 靶场搭建可用蓝易云服务器

  8. 【代码审计】LaySNS_v2.2.0 前台XSS跨站脚本漏洞

      0x00 环境准备 LaySNS官网:http://www.laysns.com/ 网站源码版本:LaySNS_v2.2.0 程序源码下载:https://pan.lanzou.com/i0l38 ...

  9. DVWA之反射型XSS代码审计

    目录 low medium high impossible 从整个cms的角度去分析这个漏洞 low 前端代码如下.定义了一个表单以get的方式发送请求形式为?name= .然后引用了一个$html的 ...

  10. php代码审计【24】齐博CMS xss 漏洞漏洞

    一.以前安装过,我这先验证下漏洞 注册普通账号权限: 进入到会员中心的短消息: 这里给管理员发送短消息:  管理员登录后点击我们发的消息: 直接实际测试: 我们后台已经拿到cookie了 利用获取的c ...

最新文章

  1. Codeforces Round #504 E - Down or Right 交互题
  2. php 笔试 龙腾简合_记录面试龙腾简合-java开发工程师经历
  3. 大学计算机基础B这本书哪有,大学计算机基础b试卷
  4. SFB 项目经验-55-另类更新Exchange 2016 KB
  5. SAP Fiori Elements 公开课第二单元学习笔记:Fiori Elements 架构
  6. 【代码笔记】iOS-下拉选项cell
  7. Linux系统编程---17(条件变量及其函数,生产者消费者条件变量模型,生产者与消费者模型(线程安全队列),条件变量优点,信号量及其主要函数,信号量与条件变量的区别,)
  8. 35岁老半路程序员的Python从0开始之路
  9. (转) RabbitMQ学习之helloword(java)
  10. 为什么个体户做不大?
  11. java语言的主要特点有简单性,太厉害了!
  12. 数据结构课程设计:顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现...
  13. alot英文怎么读_alot...of是什么意思
  14. spring容器destory时没有调用destory-method解决方法
  15. 专利修改:ps换填充色
  16. mac版python3.7安装教程_M是什么意思_M的翻译_音标_读音_用法_例句_爱词霸在线词典...
  17. Howto: Download SLES or SLED Source Code
  18. php7 扩展 在哪下载,php7.0 redis扩展下载地址
  19. 【状语从句练习题】连词 + 过去分词
  20. Windows安装MySQL报错:由于找不到msvcr120.dll无法继续执行代码

热门文章

  1. ASP.NET MVC项目的创建
  2. openflow多级流表机制的优点?
  3. ASP.NET Core微服务(六)——【redis操作】
  4. ASP.NET Core微服务(三)——【跨域配置】
  5. Slave: received end packet from server, apparent master shutdown:
  6. phoenix kerberos 连接配置
  7. 1121 Damn Single (25 分)
  8. 关于mingw编译Qt时无法编译opengl es2(ANGLE)版本的问题
  9. spring的jar包以及相关的API文档的下载方式
  10. vue里碰到 $refs 的问题