2008年6月24日星期二

[Tips]学习WebZine [0x02]后乱谈

by Superhei
2008-06-25
http://www.ph4nt0m.org

这里学习了下自己看的明白的PP

[PSTZine 0x02][0x07][乱谈之XSS攻击检测]

这个文章里提到了几个有趣的漏洞:

1.phpinfo() 4096字节后的xss,这个漏洞要是不去分析php的源代码是没有办法发现的,很多人看应用程序的原代码只去分析溢出等问题,但是忽视了应用上的安全, 这个还是要看发现者的意识,SE大牛分析php代码就不放过应用上的安全。而且就web程序的漏洞现在主要是看细节,而发现这些细节最好的办法就是分析 php本身的代码

2.word脚本执行漏洞,对于这个漏洞在hi群里很多人都测试过,没办法创建对象,所以不可以通过wsh等对象执行命 令,但是他可以访问url,这个我们就可以做很多事情[相当于一个csrf],比如引入一个gmail的xss的url,当你打开一个doc文件的时候 你的gmail的cookie就被别人偷了。就这个类型的程序利用还有很多比如pdf 比如最近有人发的[rar自解压文的挂马]... 可以做个应用程序的crsf攻击专题?以后的那些主动防御是不是还要防偷cookie的小偷呢?:)

[这里顺便说下我对csrf的理解,csrf可以认为是一种漏洞类型,但是同时也是一种攻击方式]

[PSTZine 0x02][0x06][深入挖掘ORACLE内部SQLINJECTION]

对于kj这个文章我绝对标题把"挖掘"改为"分析"或者"调试"更加好,对于挖掘他这个文章里提到的方法是不科学的,因为他"挖掘"的前提是用了人家公布的POC/EXP。

对于ORACLE里的SQLINJECTION的基本有2个方法[文章也有提到]

1.白盒[文章也没有提到具体的]

在John McDonald大牛的blog上有篇文章:http://taossa.com/index.php/2006/12/26/stored-procedure-sql-injection-cheat-sheet/

对于白盒来说我们要grep的关键词:

he best way to find these is to do a case insensitive substring search for the following: EXEC, DBMS_SQL, and OPEN.

2.黑盒
在kj文章最后提到的fuzz那才是挖掘

这里说一下ORACLE简单的FUZZ,可以查询ALL_OBJECTS找出所有的package function
procedure与ALL_ARGUMENTS关联获取执行对象的参数类型!

简单介绍具体的几个步骤如下:

a.根据object_name得到package的object_id

SQL> select object_id,object_type from all_objects where object_name='DRILOAD';

OBJECT_ID OBJECT_TYPE
---------- ------------------
30192 PACKAGE
30243 PACKAGE BODY

b.根据object_id得到函数/过程名

SQL> SELECT DISTINCT PROCEDURE$ FROM SYS.ARGUMENT$ WHERE OBJ#=30192;

PROCEDURE$
------------------------------
BUILD_DML
RESOLVE_SQE
VALIDATE_POL
VALIDATE_STMT

c.得到具体PROCEDURE$的参数个数及类型

SQL> select distinct position#,argument,pls_type from sys.argument$ where obj#=30192 and PROCEDURE$='VALIDATE_STMT';

POSITION# ARGUMENT PLS_TYPE
---------- ------------------------------ ------------------------------
1 SQLSTMT VARCHAR2

d.构造fuzz数据

SQL> CALL CTXSYS.DRILOAD.VALIDATE_STMT('''');
CALL CTXSYS.DRILOAD.VALIDATE_STMT('''')
*
ERROR 位于第 1 行:
ORA-06510: PL/SQL: 无法处理的用户自定义异常事件
ORA-06512: 在"CTXSYS.DRILOAD", line 42
ORA-01756: 括号内的字符串没有正确结束

上面的步骤只是简单介绍,具体实现起来还有很多细节要注意[如得到package的所有者如DRILOAD的所有者CTXSYS],花哥已经根据上面的原理实现了一个fuzz,效果还是有的 如:http://superhei.blogbus.com/logs/20127819.html

另外:对于kj文里的“当然最好是审核一下FUZZ的对象EXECUTE权限是否为PUBLIC”,这个是没有必要的,而且对于高权限用户的PACKAGE还是有意义的。对于oracle里的注射在web上利用一直都是围绕着2个问题:

a."权限提升"
b."执行多语句"

但 是oracle里的function调用是很复杂的,比如一个sys的A()里有权限,但是它对PUBLIC没有execuite权限,但是可以被另外一 个B()调用,B()的EXECUTE权限是PUBLIC,所以一样可能被利用,而且对于web上的inj 很多连接用户的权限很高,通过注射可以执行多语句。


[PSTZine 0x02][0x04][浅析浏览器的跨域安全问题]

这个文章比较有意思,首先介绍这个文章的一些8挂:

首 先要从bluehat还是Manuel Caballero的一个题目讲起,由于bluehat的变态[不公布ppt等资料],但是在bluehat的新闻介绍里无意发了个pic[这个pic我 现在找不到了],被sdc看到了 于是从那个pic给出点信息开始研究测试,终于有了:http://sirdarckcat.blogspot.com/2008/05/browsers-ghost-busters.html, 接下来就是pdp的介绍推广:http://www.gnucitizen.org/blog/ghost-busters/。对于有价值的信息我是很愿 意共同享受的,于是我看到他们的blog 并发在了hi群里 一起测试讨论。于是qz测试后有了这个文章,并且有了新的进展 :)。 不过最后我在和参加过bluehat的朋友讨论,但是这个朋友告诉我:Manuel Caballero在bluehat上讲的根本不是这个问题 .....

最后bs下ms的恶心,为了得到bluehat的ppt[主要是web的],我找了很多朋友,只有kuza55分享了他的 ppt,还问了kuza55和sowhat是否有其他的ppt,但是他们告诉我ms不让给出来他们的资料,于是我偷偷的email给Manuel Caballero没有回音,不过我还没死心,由于近年来国内暴了很多ms的0day,导致ms可能想和国内的安全人员拉拉关系于是出现了几个ms 安全部门的中国人。于是我想通过他们偷偷share下bluehat的ppt,但是最后的结果还是失败....

对于这个文章在技术方面的关键主要有2个:

a. {toString:function(){return "some-string";} 看了pdp的blog上可以发现这个方法是通过大量测试 得到的结果 ?
b.javasript: 这个就是qz文里的关键利用,因为qz的测试分析思路是值得学习的 :)


[PSTZine 0x02][0x09][如何识别高级的验证码]

对于这个文章里的技术我是不怎么懂的,这里主要是感慨一下,文中的利用主要都是在gui下识别,对于csrf 和web自动化估计是没太大意义 :(


对于其他的文章不在我搞的范围........

rar-gmailxss.bmp http://docs.google.com/File?id=dd9wcvmj_5dbhzqggj_b

word-gmailxss.bmp http://docs.google.com/File?id=dd9wcvmj_3ncwwzjs6_b




没有评论: