SQL注入


SQL注入(SQL Injection)是一种常见的Web安全漏洞,主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱库、被删除、甚至整个服务器权限陷)。


我们使用工具进行注入,手工注入效率低


sqlmap


SQLMap 是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL 、Oracle 、PostgreSQL 、Microsoft SQL Server、Microsoft Access 、IBM DB2, SQ Lite 、Firebird 、Sybase和SAPMaxDB 。


我们打开靶机,选择“SQL 注入”

选择“Example1”


PentestLab-web安全SQL注入-EXP1_数据库


观察


PentestLab-web安全SQL注入-EXP1_SQL_02


看起来是直接查询


我们尝试手工

payload



使用工具测试


python sqlmap.py -u "http://192.168.29.148/sqli/example1.php?name=root" --dump all


PentestLab-web安全SQL注入-EXP1_SQL_03


CO2插件


PentestLab-web安全SQL注入-EXP1_SQL_04


还是使用sqlmap命令行舒服


PentestLab-web安全SQL注入-EXP1_数据库_05


不继续测试其他参数


PentestLab-web安全SQL注入-EXP1_SQL_06


结果出来

验证


PentestLab-web安全SQL注入-EXP1_数据库_07


我们查看代码

打开靶机


PentestLab-web安全SQL注入-EXP1_SQL_08


并没有做任何限制。