mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练

0x02 MYSQL 手工注入实战——基于错误的 SQL 注入
前言,之前有对MYSQL基于报错的手工注入进行过介绍,但今天的实验环境,并不是基于报错的SQL注入,而是一个基于布尔的SQL盲注测试流程。
这个网站的SQL注入漏洞,大概1年前就有人发现过了,我也是在找环境的过程中,突然发现的。这个网站是存在WAF的(WTS-WAF)
但是这个WAF并不是很管用,只是把空格与某些重要函数放到了黑名单里面:
mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练
文章图片

废话不多说,直接上手操作吧:
(1)首先确定如何闭合SQL语句:
这个网站我再试探闭合语句的时候,发现它的SQL语句是不需要故意去闭合的,所以我们可以直接在URL后面加自己想要的语句
(2)这里用?id=10 and 1=1去试探,发现返回了WAF警告,那我们用+去替代掉空格
mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练
文章图片

(2)测试成功后,order by 查字段数:
mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练
文章图片

mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练
文章图片

查询出字段数为14
(3)查询可显字段名:有两个位置可以显示出来
mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练
文章图片

(4)查询当前数据库:
mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练
文章图片

(5)查当前数据库所有表名:
发现它把group_concat()函数,放入了黑名单:
mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练
文章图片

既然不能一次性查出来,又想要练习手工的话,那就一个一个查吧:
mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练
文章图片

blank.php?id=-10+union+select+1,2,3,4,5,6,7,unhex(Hex(cast(table_name+as+char)))table_name,9,10,11,12,13,14+from+information_schema.tables+where+table_schema=database()+limit 0,1--+
【mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练】查了20多个表出来,这里只需要找到几个比较重要的就行:
mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练
文章图片

(6)查指定表名的字段名:
mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练
文章图片

mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练
文章图片

(7)查指定字段的内容:
这里为了不一个一个字段去查,用concat_ws()函数,一起把关键字段内容提取了出来
mysql|mysql 手工报错注入_MYSQL手工注入(详细步骤)—(2)实战演练
文章图片

0x03 未完待续
原文:https://www.cnblogs.com/-mo-/p/11198386.html

    推荐阅读