DVWA使用教程(SQL injection)(七)
DVWA是一个用来练习Web渗透的PHP应用。共有十个模块,分别是
1.Brute Force(爆破)
2.Command Injection(命令注入)
3.CSRF(跨站请求伪造)
4.File Inclusion(文件包含)
5.File Uplod(文件上传)
6.Insecure CAPTCHA(不安全的验证码)
7.SQL Inj(SQL注入)
8.SQL B Inj(SQL盲注)
9.XSS-ref(反射型xss)
10.xss-stored(存储型xss)
一、简介
SQL注入漏洞是一种常见的漏洞。利用SQL注入漏洞去查询记录,会造成数据泄露,如果泄露的数据中含有管理员密码,还可能导致拖库发生。
二、功能特点
SQL注入漏洞往往是因为对用户输入过滤不严。SQL注入漏洞多是高危漏洞,会导致严重的后果。验证漏洞时,为了提高效率,经常会先尝试使用sqlmap自动化工具辅助判断,但手工注入比自动化工具可以发现更多的注入点。
三、各防护等级简介
low等级,对SQL注入行为毫无设防。
medium等级,对SQL注入行为防护不足,防护做法欠考虑。
hight等级,对SQL注入行为有一定防护,但有疏忽。
impossible等级,对SQL注入行为正确防护。
四、基础知识补充
整型注入与字符型区别:
当输入的内容为数字时,可能存在整型注入,也可能存在字符型注入。
区别在于,整型不需要单引号来闭合,而字符型需要通过单引号来闭合的。
可以简单的理解为,不需要考虑单引号如何闭合则为整型注入,其他情况均是字符型。
information_schema:信息数据库,保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表名,表列的数据类型与访问权限等。
mysql_real_escape_string():实现转义7种危险字符。SQL 语句字符串中的特殊字符,如输入单引号’则处理时会在其前面加上右斜杠\来进行转义,如果语句错误则输出相应的错误信息。其中受影响的字符如下:\x00 \n \r \ ' " \x1a
记住下面几个词的含义及用法。
几个常出现的单词:
1.information_schema.tables:存储着MySql中的所有表。
2.information_schema.columns:存储着MySql中的所有列。
3.table_schema是数据库的名称。
4.table_name是具体的表名。
5.table_type指的是表的类型。
6.group_concat(0x3e,xxx):连接多个字段成一个字段。
7.union操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。
五、low代码模块剖析
概述:low等级,对SQL注入行为毫无设防。
<?php
if( isse