那些不寻常的XSS场景小总结
前言:挖掘xss漏洞时,我们常常关注的是搜索框,留言板,url参数等等。其实以下的场景有时也可以考虑测试一下,往往会有意想不到的收获…… 登录时的警告信息 登录时,我尝试输入万能密码SQL注入,用户名:admin ‘ or 1=1 – +,密码:随意 结果出现了安全警告信息!前端返回了我输入的有恶意语句的用户名,那么显然这里就是一个可控点,尝试能不能XSS 用户名输入payload,密码随意,结果成功弹窗! 1<script>alert("Hacked")</script>' or 1=1 -- + 文件名上传文件时,当文件名被渲染到前端来,也可以试试文件名中插入js代码,看看能否执行 HTML这想必已经是老生常谈了,文件上传时,如果可以上传html,那么就可以直接实现挂黑页,存储型XSS SVG矢量图svg中也可以插入js代码并执行 记事本写入,保存为 .svg 12345<?xml version="1.0"?><!DOCTYPE svg...
梦想CMS-前台注入
前言:俺开始学代码审计了,之前一直在黑盒方面学习,黑盒漏洞挖掘,没有接触过白盒,于是开始学习代码审计。【PHP代码审计项目】系列是一些用来学习练手的CMS的审计笔记,写的不好,但是也是一个记录吧,多年之后再看也是会感慨万千吧哈哈,最后学习完了代码审计我会写一个总结性的文章,还望各位大佬师傅轻喷,欢迎随时指教小弟…… 审计环境 phpstudy 2018 php-5.4.45 + Apache phpstrom 2018 CMS源码:梦想CMS-v1.4 审计过程 根据CNVD提示,找到目标文件TagsAction.class.php 发现切入点:p()传入的第三个参数是”sql”,于是此处可能存在数据库操作 p()传参 2,1,1 跟进p() 结合注释分析代码可知,p()可接收4个参数,分别是:选择接收数据的方式,是否对接收数据的引号转义,是否验证sql非法字符,是否验证sql保留字,那么p()传参2 1 1...
BlueCMS审计
BlueCMS审计审计过程还是采用正则搜索sql语句的方式,一个一个找可控变量 ad_js.php 这里很明显,ad_id参数值可控,然后又是直接拼接的sql语句,拿给getone函数去执行,那么再跟进看看getone函数写了什么过滤逻辑没有 很好,没有过滤逻辑 那么来触发漏洞,存在漏洞的文件是ad_js.php,参数是ad_id,数字型注入,不用闭合引号 那么直接注入就行 结果输出在注释 但是这里其实也是有过滤的,过滤的逻辑没有直接写在本文件中,而是在包含的文件中: 这里有对输入的参数值进行转义的逻辑 检查是否启用了魔术引号功能,如果没有启用,则用自定义的函数对输入的参数进行引号等符号转义,跟进一下deep_addslashes函数 如果参数是数组类型,则递归处理数组每一个元素,都进行引号等符号的转义 使用php内置的addslashes函数进行转义 123456addslashes() 是 PHP 的一个内置函数,用于向字符串中的特殊字符添加反斜杠(\),以便它们可以在某些上下文中被安全地使用。具体来说,它会为以下字符添加反斜杠:单引号...
梦想CMS-后台注入
前言:俺开始学代码审计了,之前一直在黑盒方面学习,黑盒漏洞挖掘,没有接触过白盒,于是开始学习代码审计。【PHP代码审计项目】系列是一些用来学习练手的CMS的审计笔记,写的不好,但是也是一个记录吧,多年之后再看也是会感慨万千吧哈哈,最后学习完了代码审计我会写一个总结性的文章,还望各位大佬师傅轻喷,欢迎随时指教小弟…… 审计环境 phpstudy 2018 php-5.4.45 + Apache phpstrom 2018 CMS源码:梦想CMS-v1.4 审计过程 根据提示,找到目标文件 BookAction.class.php 其中,”获取回复数据”的代码段,肯定涉及了数据库操作,并且使用GET或者POST方式接收参数id,也就是说id可控!但是需要进一步跟进代码,看怎么执行的sql语句,中途是否有过滤? 跟进getReply(),跳转到它的函数声明 对数组参数$id做了一些处理,implode()把数组参数id转换为以逗号分隔的字符串$id,再把$id拼接”uid in ()”之中,赋值给$param,作为SQL语句中的WHERE...
BlueCMS-前台盲注
前言:俺开始学代码审计了,之前一直在黑盒方面学习,黑盒漏洞挖掘,没有接触过白盒,于是开始学习代码审计。【PHP代码审计项目】系列是一些用来学习练手的CMS的审计笔记,写的不好,但是也是一个记录吧,多年之后再看也是会感慨万千吧哈哈,最后学习完了代码审计我会写一个总结性的文章,还望各位大佬师傅轻喷,欢迎随时指教小弟…… 审计环境 phpstudy 2018 php-5.4.45 Apache 2.4.23 phpstrom...
淡然点图标系统注入审计
环境搭建 phpstudy 2018 php-5.4.45 + Apache phpstrom 2018 Seay代审系统工具 CMS源码:淡然点图标系统 审计过程 先对主页进行刷新,触发sql语句执行,从而在mysql监控工具中截获到sql语句 观察sql语句中是否有可能可控的变量,经分析,”127.0.0.1“处可能是可控变量 跟进这条sql语句,验证该处的”127.0.0.1”是否可控,复制这条语句,在phpstrom打开该源码项目,全局搜索(ctrl + shfit + f)引号部分 1"SELECT * FROM `dd` WHERE `ip` LIKE " # '127.0.0.1'LIMIT 0 , 30 成功定位到了具体文件 php/function.php,进一步跟进代码 可以看到是在ywdd函数中执行了sql语句,传入了$ip参数,为了看$ip怎么来的,是否可控?需要继续跟进ywdd函数怎么实现的 全局搜索或者转到ywdd()函数实现,可以看到...
PHP-代码审计-Day-1
前言:俺开始学代码审计了,之前一直在黑盒方面学习,黑盒漏洞挖掘,没有接触过白盒,于是开始学习代码审计。【代码审计-Day...
Nginx反向代理钓鱼
前言:Nginx反向代理的流程,根据Nginx反向代理配置,把访问者的请求转发给设置好的目标服务器,目标服务器接收请求后把资源转发给Nginx反向代理服务器,再由Nginx反向代理服务器转发给访问者 简介 环境准备 Linux Ubuntu VPS 安装Nginx 1sudo apt-get install nginx -y 启动Nginx 1service nginx start 配置反向代理 新建反向代理配置文件 1vim /etc/nginx/sites-enabled/reverse-proxy.conf 配置 123456789101112server{ listen 80; # 监听端口 server_name 1.2.3.4; # 本机真实IP location / { proxy_pass http://xxx.xxx.xxx.xxx; # 反代的网站,即想要伪造的网站 proxy_set_header Host $host; proxy_set_header...
RDP_CVE-2019-0708漏洞复现
漏洞介绍 CVE-2019-0708,也被称为BlueKeep,是一个影响远程桌面服务(Remote Desktop Services)的漏洞。该漏洞存在于Windows远程桌面服务的处理程序中,允许攻击者在不需要用户交互的情况下远程执行任意代码,从而可能导致系统被控制或数据泄漏。这个漏洞是由于Windows远程桌面服务中处理RDP请求的部分存在一个缓冲区溢出漏洞所导致的。攻击者可以利用该漏洞发送一个经过精心构造的RDP请求,导致远程桌面服务在处理此请求时出现缓冲区溢出。通过利用缓冲区溢出,攻击者可以将恶意代码加载到受影响系统的内存中,并最终执行该代码。攻击者可能会利用CVE-2019-0708漏洞来获取对受影响系统的完全控制权,并执行各种恶意活动,如安装后门程序、窃取敏感信息、监视用户活动等。因此,这个漏洞给系统安全带来了严重的威胁。 漏洞影响版本 Windows XP SP3 x86 Windows XP Professional x64 Edition SP2 Windows XP Embedded SP3 x86 Windows Server 2003 SP2...
某网络安全培训机构的教学平台修改密码处存在逻辑缺陷漏洞
前言:第一次遇到这么奇葩的漏洞,故想记录一下,可惜后面没有危害提升成功,只是一个低危(但其实没有什么危害哈哈,只是很奇葩,打破了我”看上去就做得特别好的网站或者做网安的网站不存在漏洞”的天真认知,哈哈),要是能CSRF绝对高危。因为刚出这个漏洞,厂商还未修复,不得不厚码。但是不影响看思路(其实也没有啥思路可言),目标是一家有些名气的某网络安全培训机构的教学平台 漏洞URLhttps://xxxx.yyyyyy.com/login (你还真点了啊【狗头保命】) 漏洞复现 登录一个测试账号 进入平台,来到 个人设置 –> 修改密码处 看到需要填写原始密码 新密码 确认密码三项(最初我怎么发现这里有问题的呢?就是我把这三项都填相同的任意字符串时,发现提示:修改密码成功,于是我就笃定这里的代码肯定写得有问题!) 我当前正确的原始密码是:admin123,但是当我 “原始密码 新密码 确认密码”三项都填写:123456 时,返回了修改密码成功!!! 于是尝试使用密码:123456...

