首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

另类sql流入拿webshell

2012-12-14 
另类sql注入拿webshellsql注入,想必大家都知道,本文教大家如果通过常规方法不行的前提下,拿下网站shell。凡

另类sql注入拿webshell

sql注入,想必大家都知道,本文教大家如果通过常规方法不行的前提下,拿下网站shell。

凡是以http://www.xxx.com/xxx.asp?id=1类似名称都可以通过著名的and 1=1 和and 1=2来检测是否存在漏洞。

当时我拿的一个网站(为了安全考虑,此时不举出该网站的名字),就以xxx代替,见谅。

我用and 1=1 and 1=2试了一下,发现该网站存在注入漏洞,并且是access数据库,然后又通过and exists (select * from admin)发现存在admin表

接着找到了两个关键字段:admin和password

当我想通过count(*)找该表有多少条数据的时候,该网站弹出如下对话框:另类sql流入拿webshell

这倒是没关系,因为根据经验至少存在一条数据。然后开始猜解第一条数据的值,通过sql语句and (select top 1 asc(mid(admin,1,1)) from admin)>0时又弹出如下对话框:另类sql流入拿webshell想必是该网站对某些字符都做了过滤,最后发现,除了select,像update,insert,delete都做了过滤,到这里是不是就该放弃了呢?答案当然是否定的还有一个函数不知大家还有印象不,那就是right()和left(),当时,我用left函数发现,其获得的ascii码始终是取出的字符串的第一个字符,然后我就想到用right()函数倒着猜解他的字段,这里admin字段长度为5,写入如下函数表达式:and (select top 1 asc(right(admin,1)) from admin)>0 依次类推,直到猜解出字段值。哈哈,几分钟后,成功破解出用户名和密码。

1楼kajweb前天 09:35
为什么left函数其获得的ascii码始终是取出的字符串的第一个字符而right()函数倒着猜解他的字段可以?
Re: lynnlovemin昨天 18:41
回复kajwebn举个例子:字段名:username,对应的值:adminnleft(username,1) === anleft(username,2) === adnleft(username,3) === admn依次类推。。。。。第一个字符串始终是1n如果用right 如下:nright(username,1) == nnright(username,2) ==innright(username,3)== minn第一次获得n第二次i,第三次获得m,不就能猜解到了吗?

热点排行