SQL漏洞--简介及数字型注入、字符型注入等多项测试
数据库注入漏洞主要指开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄露的一种漏洞。
一、数字型注入:
通过pikachu搭建的靶场进行SQL数字型注入测试:
一、 数字型注入的攻击原理如下:
1.从网页端可以看到,通过输入user_id值后,提交到服务器,服务器中的程序代码通过网页端发送的信息通过程序语句,搜索数据库中的数据:
以上就是数字型注入的过程。
二、字符型注入:
1.在pikachu靶场打开sql字符型注入界面,可以看到字符型注入有一个查询的文本框,此时可以通过这个网页测试这个页面是否存在sql注入漏洞,在文本框输入'单引号,点击查询,可以看到网页有响应,推测这个界面存在sql注入漏洞:
2.此时可以设想网页的代码端变量带入形式未进行过滤,猜测代码端变量如以下形式,可以猜测构建数据值指令;
3.构建的数据库语句xxx' or 1=1#这个语句,单引号前面的内容为变量代码段username == ‘$username’ 的后半段,而or 1=1 是数据库查询所有语句的意思,#代表注释后面的内容,为句子结尾。通过内容输入,在网页端可以看到一下内容遍历了数据库所有用户名。
三、搜索型注入:
1.搜索型注入和文本注入差不多,通过模糊匹配的方式对数据库内容进行搜索,可以进一步加深对sql注入的理解,先从代码端进行了解
2.通过搜索型变量进行构建,形成数据库语句的闭合:
四、XXX型注入:
1.先从代码端看XX型注入的代码端程序是如何编写的:
2.对XX型注入进行构造:
3.在实际进行渗透测试的时候,往往是看不到代码的,这时候就需要通过自身的经验进行多次尝试,对简单的注入进行一些判断。
以上对不同类型的注入记录,核心是为了数据库可执行语句的闭合,猜想后端的sql语句是怎么进行拼接的,想尽办法去构造一个可执行的sql,让后台的数据库去执行。
视频内容可以查看哔哩哔哩上该博主的视频讲解:
https://www.bilibili.com/video/BV1Bp4y1q7XF?p=24&vd_source=dff7301b3276675eb7bbed4276c7c5d1