Web安全漏洞及代码审计(第2版):靶机SQL注入漏洞与审计PPT教学课件.pptxVIP

  • 0
  • 0
  • 约3.03千字
  • 约 21页
  • 2026-01-22 发布于浙江
  • 举报

Web安全漏洞及代码审计(第2版):靶机SQL注入漏洞与审计PPT教学课件.pptx

项目4

靶机SQL注入

漏洞与审计

Web安全漏洞及代码审计(第2版)(微课版);

01项目知识准备

漏洞介绍

SQL注入漏洞是最常见的

也是被利用最多的漏洞,长期位于OWASPTOP10中的第一位。无论是采用何种编程语言的Web应用框架,都具有交互性,并且大多是由数据库驱动的,而在PHP的Web应用框架中,大部分都是结合MySQL数据库来保存相关数据的。

SQL注入就是在程序开发过程中

程序开发人员未对用户输入的内容进行任何过滤或者过滤不严格,而直接将其拼接到SQL语句中,使数据库误认为用户输入的内容是正确的SQL语句并将其放入数据库引擎中执行。;

漏洞危害

因为利用SQL注入漏洞可以直接对数据库进行操作,所以它的危害不言而喻。攻击者可以通过SQL注入来获取数据库中存放的机密、敏感数据,篡改管理员账户、密码,修改数据库中部分字段的值,嵌入木马链接,进行挂马攻击等,在权限较大的情况下,还可以通过SQL注入写入Webshell或者执行系统命令等。

目前,使用较多的SQL注入工具就是sqlmap。它是一款开源的跨平台SQL注入工具,可以针对不同类型的数据库进行SQL注入。它支持5种注入方法:基于布尔的盲注、基于时间的盲注、基于错误信息的注入、联合查询注入、堆查询注入。

审计思路;

任务1SQL注入漏洞分析

任务目标

能够进行SQL注入漏洞的分析

了解国家信息安全漏洞共享平台(CNVD)的原创漏洞证书,激发对漏洞挖掘专业的兴趣和创新精神。

任务实施

1.普通注入;

通过分析上述测试代码可以发现,$id接收$_GET[id]的值,并

且未进行任何校验就将其代入数据库,如果构造其他语句并执行,就可以对其进行注入。

执行SQL语句“/sql.php?id=-1UNIONSELECT

1,database(),user(),4--+”,结果如图可以看到原SQL语句的结果已经被更改并执行。原本的SQL语句已经被注入更改,同时,从上面的测试代码中可以看到一些数据库操作的关键字,如

mysql_connect、mysql_query、mysql_fetch_array等。在进行代码审计时,要多注意这些关键字。;

02任务1SQL注入漏洞分析;

任务1SQL注入漏洞分析

任务实???

2.宽字节注入

此时指定GBK编码格式,并提交“/sql.php?id=1%dfUNIONSELECT1,database(),user(),4%20--+”,这样参数id在传递到代码层时就会在单引号前加上反斜线进行转义。由于浏览器采用的是URL编码格式,因此传递的参数是%df%5c%27。当输入“%df%27”时,先使其经过单引号的转义变成%df%5c%27,然后使用数据库查询语句进行GBK多字节编码(即一个中文占用2字节,一个英文同样占用2字节且在汉字编码范围内两个编码为一个汉字)。最后,MySQL服务器会对查询语句进行GBK编码,即将%df%5c转换成汉字“運”,使单引号逃逸出来,从而绕过转义造成注入漏洞,发挥作用,结果如图4-4所示。转换过程如下。用户输入内容“%df%27”→经过过滤函数处理(反斜线转义)→%df%5c%27→设置GBK编码格式→吃掉转义符,形成新的字节“運”→绕过转义符,闭合单引号。

用户名:admin

密码:admin

邮箱:admin

ID:1

用户名:sqltest

密码:root@localhost

邮箱:root@localhost

SQL语句:SELECTFROMuserWHEREid=16VUNIONSELECT1,database(,user().4-;

一阶注入很容易被WAF、安全策略等检测到,所以虽然一阶注入可利用的工具比较普遍,构造语句也非常多,但是大多数一阶注入会被过滤或拦截。相对于一阶注入来说,二次注入可以在一定程度上绕过一些限制,避免单引号、双引号和反斜线等的转义对构造语句的影响。

二次注入可以被理解为结合两个注入点来实现SQL注入的一种方式。第一个注入点会经过过滤或转义处理,如addslashes()函数会将参数中的单引号等特殊字符转义。但是在将数据存储到数据库中时,攻击者写入的数据会被还原,即反斜线转义符会被去掉,此时攻击者存储的数据就会被认为是可信的。而且,在攻击者发现一个新的注入点并需要在数据库中查询数据时,程序会直接从数据库中取出攻击者插入

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档