我爱电脑技术论坛's Archiver

star2008 发表于 2008-6-26 11:25

学习WebZine [0x02]后乱谈

文/superheiB%u/c:Kb&l U
9u ]YF8W-Xj
这里学习了下自己看的明白的PP
Y4y&K4b t0Tv
+xG9f^ A} HdoQ [PSTZine 0x02][0x07][乱谈之XSS攻击检测]
$f7qGx#SF/WaC
A:G}:z{$aa 这个文章里提到了几个有趣的漏洞:
Y~&^(D{ +|,`zE;{)X Z
1.phpinfo() 4096字节后的xss,这个漏洞要是不去分析php的源代码是没有办法发现的,很多人看应用程序的原代码只去分析溢出等问题,但是忽视了应用上的安全,这个还是要看发现者的意识,SE大牛分析php代码就不放过应用上的安全。而且就web程序的漏洞现在主要是看细节,而发现这些细节最好的办法就是分析 php本身的代码
{8y.gg$I.s T@
G-}r ^1s&XX.X 2.word脚本执行漏洞,对于这个漏洞在hi群里很多人都测试过,没办法创建对象,所以不可以通过wsh等对象执行命令,但是他可以访问url,这个我们就可以做很多事情[相当于一个csrf],比如引入一个gmail的xss的url,当你打开一个doc文件的时候你的gmail的cookie就被别人偷了。就这个类型的程序利用还有很多比如pdf 比如最近有人发的[rar自解压文的挂马]... 可以做个应用程序的crsf攻击专题?以后的那些主动防御是不是还要防偷cookie的小偷呢?:)
8^pg]Kx+MX A)HK$i\
[这里顺便说下我对csrf的理解,csrf可以认为是一种漏洞类型,但是同时也是一种攻击方式]e U ^tX;S0[

Rhqph%f [PSTZine 0x02][0x06][深入挖掘ORACLE内部SQLINJECTION]%p$j$e0U,AC)`

][+B Y ]%x'_hpG;M#P 对于kj这个文章我绝对标题把"挖掘"改为"分析"或者"调试"更加好,对于挖掘他这个文章里提到的方法是不科学的,因为他"挖掘"的前提是用了人家公布的POC/EXP。
i {6DP:]S}
i6o*W z iG 对于ORACLE里的SQLINJECTION的基本有2个方法[文章也有提到]
7u7i"_WT c k ,I6Ajg+E}R~
1.白盒[文章也没有提到具体的]3N.OE-iW
C0Y5cKx(L:S4Gt
在John McDonald大牛的blog上有篇文章:[url]http://taossa.com/index.php/2006/12/26/stored-procedure-sql-injection-cheat-sheet/[/url]
l k Gp1m"f*g I"V
O`+k6n1dDz 对于白盒来说我们要grep的关键词:&M'W.AjC&w `vA
&H}%C:H2y x"m&V4a
he best way to find these is to do a case insensitive substring search for the following: EXEC, DBMS_SQL, and OPEN.So ~(y?8X
o0\K6PE!Ip
2.黑盒q!pU7v`0Z
在kj文章最后提到的fuzz那才是挖掘a!cLaY
pc.A5R+Q-Sro y
这里说一下ORACLE简单的FUZZ,可以查询ALL_OBJECTS找出所有的package function-h^+a]tHp5ua
procedure与ALL_ARGUMENTS关联获取执行对象的参数类型!B5`*a vvuqRek7tP
\ K#r [k5y0s
简单介绍具体的几个步骤如下:
(u z#P7]Ke%Q.E/L
`'?/o+IF)|{ a.根据object_name得到package的object_id
n.E ~+G"A P/GV !|2md;c d
SQL> select object_id,object_type from all_objects where object_name='DRILOAD';
NFs"g&A Oi q+?-}*Rd,AXT
OBJECT_ID OBJECT_TYPE(@ `0n6\R_:h
---------- ------------------ K Ip2v#h,Q#yy
30192 PACKAGEI ^\1]9l
30243 PACKAGE BODY

star2008 发表于 2008-6-26 11:26

b.根据object_id得到函数/过程名
2QTm]#i |e 2D1zj8VlT
SQL> SELECT DISTINCT PROCEDURE$ FROM SYS.ARGUMENT$ WHERE OBJ#=30192;-L+[ f'?:X"P8`

*] t~!]5P]2z?cV PROCEDURE$9^9w*p+IA:u,zB
------------------------------.b$w5L/^;v2T
BUILD_DMLN/f1l)|:{j4hof_6v
RESOLVE_SQE
+YaM lr0iO VALIDATE_POL
#y4ubn3q VALIDATE_STMT
rB9QXn)b
'QT"nx0b^7ca!V c.得到具体PROCEDURE$的参数个数及类型
;i+J&|1N"Zk3}-O
tF6NU1l/W f SQL> select distinct position#,argument,pls_type from sys.argument$ where obj#=30192 and PROCEDURE$='VALIDATE_STMT';
Z `%v8i!s
p-R4\L~LG` POSITION# ARGUMENT PLS_TYPE5| gsbL
---------- ------------------------------ ------------------------------
$B!~A&T#h*t 1 SQLSTMT VARCHAR2
$Hw'ee^0R 1t s'm:i*Da
d.构造fuzz数据
p#o5j1XPHo \)Xb@tq+Q
SQL> CALL CTXSYS.DRILOAD.VALIDATE_STMT('''');
\6yo:[)o2zL)@ CALL CTXSYS.DRILOAD.VALIDATE_STMT('''')
!~0k R&MiG *!{4n}8v1bS
ERROR 位于第 1 行:
leO^7[ O2| Z7f ORA-06510: PL/SQL: 无法处理的用户自定义异常事件
"N9g$Z O F`T!NW6ETj ORA-06512: 在"CTXSYS.DRILOAD", line 42
6Pl[j` ORA-01756: 括号内的字符串没有正确结束
S dw*G,[/r9f7\ p6O,[-O1Oc G
上面的步骤只是简单介绍,具体实现起来还有很多细节要注意[如得到package的所有者如DRILOAD的所有者CTXSYS],花哥已经根据上面的原理实现了一个fuzz,效果还是有的 如:[url]http://superhei.blogbus.com/logs/20127819.html[/url]\M1~c#Z
]hMQ"?v Q] o
另外:对于kj文里的“当然最好是审核一下FUZZ的对象EXECUTE权限是否为PUBLIC”,这个是没有必要的,而且对于高权限用户的PACKAGE还是有意义的。对于oracle里的注射在web上利用一直都是围绕着2个问题:
[|}yj*b!y(JD }%wnp[v({4@ x6Z
a."权限提升"/q2BE"F!t0` ?Iy
b."执行多语句":NS(TC%d D

\X(y_|T Z t 但是oracle里的function调用是很复杂的,比如一个sys的A()里有权限,但是它对PUBLIC没有execuite权限,但是可以被另外一个B()调用,B()的EXECUTE权限是PUBLIC,所以一样可能被利用,而且对于web上的inj 很多连接用户的权限很高,通过注射可以执行多语句。t)}&rY+`;X k4}-b
htm3_6Ro
[PSTZine 0x02][0x04][浅析浏览器的跨域安全问题](s b4|,`3Kk#[6@xM'eq
fVFF1Li
这个文章比较有意思,首先介绍这个文章的一些8挂:c Trt4M)I_,T

h"g:Oj.|)v1| 首先要从bluehat还是Manuel Caballero的一个题目讲起,由于bluehat的变态[不公布ppt等资料],但是在bluehat的新闻介绍里无意发了个pic[这个pic我现在找不到了],被sdc看到了 于是从那个pic给出点信息开始研究测试,终于有了:[url]http://sirdarckcat.blogspot.com/2008/05/browsers-ghost-busters.html[/url],接下来就是pdp的介绍推广:[url]http://www.gnucitizen.org/blog/ghost-busters/[/url]。对于有价值的信息我是很愿意共同享受的,于是我看到他们的blog 并发在了hi群里 一起测试讨论。于是qz测试后有了这个文章,并且有了新的进展 :)。不过最后我在和参加过bluehat的朋友讨论,但是这个朋友告诉我:Manuel Caballero在bluehat上讲的根本不是这个问题 .....u]1Y.Eb-JT
w#]BFcMNuY
最后bs下ms的恶心,为了得到bluehat的ppt[主要是web的],我找了很多朋友,只有kuza55分享了他的 ppt,还问了kuza55和sowhat是否有其他的ppt,但是他们告诉我ms不让给出来他们的资料,于是我偷偷的email给Manuel Caballero没有回音,不过我还没死心,由于近年来国内暴了很多ms的0day,导致ms可能想和国内的安全人员拉拉关系于是出现了几个ms 安全部门的中国人。于是我想通过他们偷偷share下bluehat的ppt,但是最后的结果还是失败....
4dVm:T Qw$]
tAP:WHh? 对于这个文章在技术方面的关键主要有2个:0X:~!s4~wc

%W`[MVa a. {toString:function(){return "some-string";} 看了pdp的blog上可以发现这个方法是通过大量测试 得到的结果 ?~tUM+INIO%Nr
b.javasript: 这个就是qz文里的关键利用,因为qz的测试分析思路是值得学习的 :)
IO*j^kT&sN OnC3ha#x%OnI3{D
[PSTZine 0x02][0x09][如何识别高级的验证码]
6D@Cz.W8~g Z)J$p@ ;V6x~0Q#x2?qu os
对于这个文章里的技术我是不怎么懂的,这里主要是感慨一下,文中的利用主要都是在gui下识别,对于csrf 和web自动化估计是没太大意义 。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.