可以看到包含了Temmoku.’functions.php’文件,这个时候我们的小记事本就有它的用途了,我们在记事本中进行搜索。
这样的话也就是包含了 D:\phpstudy_pro\WWW\temmoku\temmoku\functions.php 文件,我们打开temmoku/functions.php文件进行读取。
可以清晰的看到functions.php文件中定义了超多函数,除此之外我们要注意的是functions.php文件中到底是不是只定义了一些公共方法,有没有写其他的语句。这里笔者大致浏览了一下只是定义了许多的方法,所以我们回到run.php再次进行通读。
包含temmoku/app.php文件,我们打开看一下。
在run.php文件的末尾有调用新包含进来的app类的run方法,我们看到spl_autoload_register时一定需要注意,因为该函数是用来自动包含文件用的,用来加载出实例化不到的类。它对我们的代码审计起着重要的作用。
我们来读一下Load_Class静态方法中到底是怎么玩儿的。
第82行中调用了str_caps_look方法,这也就是我们之前包含进来的functions.php文件中所定义的方法,但是str_caps_look方法中第一个参数将”\”替换为了”/”是为什么呢?到这里我们需要引发一些猜想,因为PHP中的命名空间使用”\”进行分命名,所以它这里将”\”替换为了”/”也许是为了后期的路径问题。
我们搜索一下str_caps_look方法看一下它是如何定义的。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
这样的话也就是包含了 D:\phpstudy_pro\WWW\temmoku\temmoku\functions.php 文件,我们打开temmoku/functions.php文件进行读取。
可以清晰的看到functions.php文件中定义了超多函数,除此之外我们要注意的是functions.php文件中到底是不是只定义了一些公共方法,有没有写其他的语句。这里笔者大致浏览了一下只是定义了许多的方法,所以我们回到run.php再次进行通读。
包含temmoku/app.php文件,我们打开看一下。
在run.php文件的末尾有调用新包含进来的app类的run方法,我们看到spl_autoload_register时一定需要注意,因为该函数是用来自动包含文件用的,用来加载出实例化不到的类。它对我们的代码审计起着重要的作用。
我们来读一下Load_Class静态方法中到底是怎么玩儿的。
第82行中调用了str_caps_look方法,这也就是我们之前包含进来的functions.php文件中所定义的方法,但是str_caps_look方法中第一个参数将”\”替换为了”/”是为什么呢?到这里我们需要引发一些猜想,因为PHP中的命名空间使用”\”进行分命名,所以它这里将”\”替换为了”/”也许是为了后期的路径问题。
我们搜索一下str_caps_look方法看一下它是如何定义的。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
SQL注入的摸索
我们在了解框架时知道,全局进行了htmlspecialchars过滤,并且我们知道有两种存在SQL注入的情况,第一种情况:有两个可控点、第二种情况:有一个可控点,并且没有被引号包裹。这两种情况发送的请求Key都不能为
'id','aid','cid','uid','mid','cmid','iid','nid','cityid','proviceid','countyid','townid','upcid','state','reply_id','lid'
我们通过Notepad++的全局搜索功能,搜索“' AND ”来看一下
这里并没有找到可利用的点,接着我们查找“' OR ”
也没有给出我们想要的结果。
后台SQL注入漏洞
在0x02中我们的猜想没有成功,这个时候我们可以通过Seay源代码审计系统来进行漏洞查找。但笔者并没有使用工具。
通过笔者以往的审计经验,存在SQL注入大多情况下会在Mysql中的WHERE语句中的in关键字,我们通过Notepad++来全局查找一下“in (”
我们可以看到$_POST[uiddb]中,uiddb并不在过滤范围,所以这里有可能会造成SQL注入漏洞。
这里使用了db类,笔者简单观看了一下,开发者写出的db类类似于TP框架中的db类。
这里构造HTTP包
user模块中comment控制器的del方法存在in关键字
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
我们在了解框架时知道,全局进行了htmlspecialchars过滤,并且我们知道有两种存在SQL注入的情况,第一种情况:有两个可控点、第二种情况:有一个可控点,并且没有被引号包裹。这两种情况发送的请求Key都不能为
'id','aid','cid','uid','mid','cmid','iid','nid','cityid','proviceid','countyid','townid','upcid','state','reply_id','lid'
我们通过Notepad++的全局搜索功能,搜索“' AND ”来看一下
这里并没有找到可利用的点,接着我们查找“' OR ”
也没有给出我们想要的结果。
后台SQL注入漏洞
在0x02中我们的猜想没有成功,这个时候我们可以通过Seay源代码审计系统来进行漏洞查找。但笔者并没有使用工具。
通过笔者以往的审计经验,存在SQL注入大多情况下会在Mysql中的WHERE语句中的in关键字,我们通过Notepad++来全局查找一下“in (”
我们可以看到$_POST[uiddb]中,uiddb并不在过滤范围,所以这里有可能会造成SQL注入漏洞。
这里使用了db类,笔者简单观看了一下,开发者写出的db类类似于TP框架中的db类。
这里构造HTTP包
user模块中comment控制器的del方法存在in关键字
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
前台SQL注入漏洞(一)
我们紧接着上一次的“in (”关键字查询结果,来往下翻一翻是否存在前台漏洞。
我们寻寻觅觅看到user模块中comment控制器的del方法存在in关键字
我们看到进行检测$_config数组中下标为comment_del的值,这个时候我们需要进入后台设置一下:1. 开启站点注册用户功能 2. 允许站点用户删除自己的评论
首先安装两个插件,然后进入home设置
设置允许删除自己的评论
然后我们构造HTTP请求包
前台SQL注入漏洞(二)
但是后台默认关闭”是否允许删除自己的评论”配置项,我们肯定不高兴的,怎么办呢?继续往下翻!
我们寻寻觅觅找到了第二个注入点
该注入点无需开启”是否允许删除自己的评论”配置项,我们现在从后台将它关闭。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
我们紧接着上一次的“in (”关键字查询结果,来往下翻一翻是否存在前台漏洞。
我们寻寻觅觅看到user模块中comment控制器的del方法存在in关键字
我们看到进行检测$_config数组中下标为comment_del的值,这个时候我们需要进入后台设置一下:1. 开启站点注册用户功能 2. 允许站点用户删除自己的评论
首先安装两个插件,然后进入home设置
设置允许删除自己的评论
然后我们构造HTTP请求包
前台SQL注入漏洞(二)
但是后台默认关闭”是否允许删除自己的评论”配置项,我们肯定不高兴的,怎么办呢?继续往下翻!
我们寻寻觅觅找到了第二个注入点
该注入点无需开启”是否允许删除自己的评论”配置项,我们现在从后台将它关闭。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
网络攻击是指在不影响其他功能的情况下进行的计算机间谍活动和数据窃取。主要目标是访问网络、执行侦察、渗透目标系统并获取所需信息。以下是我们执行此类任务的顶级渗透测试工具。
破解地图执行,CrackMapExec 是一款针对 Windows/Active Directory 环境的一体化渗透测试工具包。它可以枚举登录用户、自动将恶意代码注入内存、将收集到的凭据存储在数据库中并利用其他漏洞。
Metasploit是一个用于调查网络和服务器上的系统漏洞的渗透测试框架。它包含大约 250 个后利用模块,包括用于键盘记录、枚举以及远程代码注入和执行的模块,请msfrpcd -h在终端中运行命令“
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
破解地图执行,CrackMapExec 是一款针对 Windows/Active Directory 环境的一体化渗透测试工具包。它可以枚举登录用户、自动将恶意代码注入内存、将收集到的凭据存储在数据库中并利用其他漏洞。
Metasploit是一个用于调查网络和服务器上的系统漏洞的渗透测试框架。它包含大约 250 个后利用模块,包括用于键盘记录、枚举以及远程代码注入和执行的模块,请msfrpcd -h在终端中运行命令“
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
❤13🔥12
通过 X-Forwarded-Scheme 标头进行缓存投毒 DoS
赏金:3,000
我很快就想起了一个使用缓存服务器和 Ruby on Rails 的私人项目资产
要求:
GET /?xxx HTTP/2
主机:已编辑
X-Forwarded-Scheme:http
...
如果您要测试这一点,您应该始终使用“缓存破坏者”(?anything=x),在这种情况下,我使用了(?xxx),这样我就不会错误地毒害其他用户。
回复:
HTTP/2 301 永久移动
日期:2022 年 1 月 19 日星期三 17:16:13 GMT
内容类型:text/html
位置:已编辑
通过:1.1 vegur
Cf-Cache-Status:HIT
年龄:3
如果攻击者对缓存服务器进行计时并毒害 https://redacted/
用户请求 https://redacted/ 时的响应将是
HTTP/2 301 已永久移动
Cf-Cache-Status:HIT
他们将无法访问https://redacted/,因为攻击者保存了
301 重定向,并且在缓存刷新之前不会加载。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
赏金:3,000
我很快就想起了一个使用缓存服务器和 Ruby on Rails 的私人项目资产
要求:
GET /?xxx HTTP/2
主机:已编辑
X-Forwarded-Scheme:http
...
如果您要测试这一点,您应该始终使用“缓存破坏者”(?anything=x),在这种情况下,我使用了(?xxx),这样我就不会错误地毒害其他用户。
回复:
HTTP/2 301 永久移动
日期:2022 年 1 月 19 日星期三 17:16:13 GMT
内容类型:text/html
位置:已编辑
通过:1.1 vegur
Cf-Cache-Status:HIT
年龄:3
如果攻击者对缓存服务器进行计时并毒害 https://redacted/
用户请求 https://redacted/ 时的响应将是
HTTP/2 301 已永久移动
Cf-Cache-Status:HIT
他们将无法访问https://redacted/,因为攻击者保存了
301 重定向,并且在缓存刷新之前不会加载。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
🔥14❤12
libmalloc初探——TinyHeap
环境与调试方式
在MacOS 11中引入了动态链接库保存系统,各个系统动态链接库不会以文件的形式保存在文件系统中,文件系统中也不存在各个系统动态链接库副本,不象我们去研究macos的堆以及相关使用。网上有对MacOS1111的动态链接库保存的过程,有兴趣的小伙伴可以尝试一下。本文主要分析在MacOS10.15.7下的libmalloc-283.100.6之后。
MacOS可以通过虚拟机进行安装,MacOS虚拟机安装的资料在网上很充分。
在MacOS上安装使用GDB还是比较麻烦的,推荐使用LLDB。LLDB是Xcode默认的调试器,命令与使用与GDB也比较相似。相比于GDB,LLDB可能插件可能还不够完善,这里推荐Voltron和lldbinit。
小堆
在Tiny和Small中分配申请的最小单位称为Quantum,Quantum在Tiny堆中的大小为0x10个字节,在Small堆中的大小为0x200字节。申请返回的堆块大小都为Quantum大小的整数倍。
微小区域
与Linux下的通过在申请的chunk前添加头部记录当前chunk的信息不同,在libmalloc中申请多大的空间就返回多大的空间,而相关信息的记录则通过region来完成。同时每个微小区域包含64504个块,每个块的大小为一个Quantum(0x10)。
Region具体是如何判断当前Region中哪些块可用哪些块不可用呢?主要是通过region结构中的位图(即结构体中对)来进行判断,位图实际上由header bitmap和inuse bitmap组成组成,其中每一个bit都分别用于记录所对应block的分配情况以及释放与否。大致的规则如下:
1.如果某个区域已经被使用,那么这块区域的第一个block在header bitmap和inuse bitmap中对应的值都是1。
2.如果一块区域是空闲的,那么这块区域的第一个块在 header 位图和 inuse 位图中对应的值分别是 1 和 0。
3. 其他情况下,表头位图均为0。
4. 其他情况下,使用位图的值无关要紧,任何值都需要。
块重叠攻击
首先申请四个chunk,然后依次释放p2以及p4,此时p2位于freelist[4]中,p4位于服务器中。
然后将p2的msize位由59,然后依次释放p1以及p3,此时p3于缓存中,p2会被置入freelist中之前,会与p2合并,但由于p2的msize被修改成9,合并后p1的msize等于0xc,实际上合并了p2以及p3,从而造成了堆块重叠。此时申请大小为0xc0和0x40的chunk,即可通过对大小为0xc0 chunk的修改实现对0x40 chunk的修改。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
环境与调试方式
在MacOS 11中引入了动态链接库保存系统,各个系统动态链接库不会以文件的形式保存在文件系统中,文件系统中也不存在各个系统动态链接库副本,不象我们去研究macos的堆以及相关使用。网上有对MacOS1111的动态链接库保存的过程,有兴趣的小伙伴可以尝试一下。本文主要分析在MacOS10.15.7下的libmalloc-283.100.6之后。
MacOS可以通过虚拟机进行安装,MacOS虚拟机安装的资料在网上很充分。
在MacOS上安装使用GDB还是比较麻烦的,推荐使用LLDB。LLDB是Xcode默认的调试器,命令与使用与GDB也比较相似。相比于GDB,LLDB可能插件可能还不够完善,这里推荐Voltron和lldbinit。
小堆
在Tiny和Small中分配申请的最小单位称为Quantum,Quantum在Tiny堆中的大小为0x10个字节,在Small堆中的大小为0x200字节。申请返回的堆块大小都为Quantum大小的整数倍。
微小区域
与Linux下的通过在申请的chunk前添加头部记录当前chunk的信息不同,在libmalloc中申请多大的空间就返回多大的空间,而相关信息的记录则通过region来完成。同时每个微小区域包含64504个块,每个块的大小为一个Quantum(0x10)。
Region具体是如何判断当前Region中哪些块可用哪些块不可用呢?主要是通过region结构中的位图(即结构体中对)来进行判断,位图实际上由header bitmap和inuse bitmap组成组成,其中每一个bit都分别用于记录所对应block的分配情况以及释放与否。大致的规则如下:
1.如果某个区域已经被使用,那么这块区域的第一个block在header bitmap和inuse bitmap中对应的值都是1。
2.如果一块区域是空闲的,那么这块区域的第一个块在 header 位图和 inuse 位图中对应的值分别是 1 和 0。
3. 其他情况下,表头位图均为0。
4. 其他情况下,使用位图的值无关要紧,任何值都需要。
块重叠攻击
首先申请四个chunk,然后依次释放p2以及p4,此时p2位于freelist[4]中,p4位于服务器中。
然后将p2的msize位由59,然后依次释放p1以及p3,此时p3于缓存中,p2会被置入freelist中之前,会与p2合并,但由于p2的msize被修改成9,合并后p1的msize等于0xc,实际上合并了p2以及p3,从而造成了堆块重叠。此时申请大小为0xc0和0x40的chunk,即可通过对大小为0xc0 chunk的修改实现对0x40 chunk的修改。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
❤13🔥12