Sqli-Labs 闯关 less 7-10
Less 7
首先像往常一样判断是字符型还是数字型,发现是字符型。但是我们红框里圈出来得东西我们没见过。查一下百度
数据库file权限和 into outfile:
数据库的file权限规定了数据库用户是否有权限向操作系统内写入和读取已存在的权限
into outfile命令是filefile系列函数来进行读取敏感文件或者写入webshell
into outfile命令使用的环境:我们必须知道,服务器上一个可以写入文件的文件夹的完整路径
现在我们接着试。
当我们输入?id=1'页面报错,说明可能存在"注入
然后我们接着试。。
我最后输入到输入?id=1')) --+尝试,发现页面回显正常。
由于本关卡提示我们使用file权限向服务器写入文件,我们就先尝试下写数据。
首先在mysql命令行中用show variables like '%secure%';查看 secure-file-priv 当前的值,如果显示为NULL,
则需要打开 C:\phpstudy\PHPTutorial\MySQL\my.ini文件,在其中加上一句:secure_file_priv=“/”。
之后重启PHP study,然后发现已经发现发生了改变,说明修改成功,就可以进行读写了。
这关我们主要就是往服务器上写入文件,我们首先要有一个存储文件的路径,也可以手动去查看。
我们在
下写入一个文件名随便起的php文件
然后写一句话代码,引号里就是密码。
然后配合使用的是中国菜刀,可以在网上搜关于中国菜刀的使用说明,很简单。
这样算是成功了,可以进行文件管理
Less 8
我们发现是字符型注入,并且通过回显的信息可以看出是布尔盲注
这个,跟前面的第5题是差不多的。有一种比较麻烦的方法就是猜
当3改为4的时候,you are in….消失,说明存在三列
先通过大于号或者小于号来判断数据库的第一个字母是哪一个
可以得出数据库名字长度为8
然后就是一系列得猜。。比较麻烦,我就直接粘最后结果了
我们可得数据库名 security
接着判断表名得长度
判断出第四张表示users
同理,进行判断,最后再使用password进行判断。
Less 9
通过语句观察,我们可以判断存在注入漏洞,
我们利用order by 语句发现不论怎么试都能正常回显, 所以这一关与上几关并不相同,只能使用时间延迟盲注。
当为8的时候很快加载,而为其他值得时候加载较慢(5s左右),那就说明此时数据库的长度就是8(security)
如果当前数据库的第一个字母的ascii值大于113的时候,会立刻返回结果,否则执行5s。
同理判断数据库中的第5个数据库的第一位的ascii的值为多少,用 > 自己试,如果是的则速度返回,否则延时5s返回结果。
其他步骤就和第8题差不多,
获得密码为:
Less 10
第十关就是把第九关的单引号‘换成双引号“就可以了。