安全测试——SQL注入

五一期间学习了钉钉的网络课程-安全测试的相关课程,将自己学习的笔记整理分享给大家,既是分享也是对自己学习笔记的整理和复习,一石三鸟。

                                                                         OWAPS无冕之王SQL注入

了解SQL注入漏洞

利用用户输入构造SQL语句的攻击,Web应用程序对用户输入的数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中插入自己精心构造的语句从而执行非法操作。

 

SQL注入危害

数据库信息泄漏;

私自添加系统账号;

读写文件获取webshell;

网页篡改:登录后台后发布恶意内容;

网站挂马:拿到webshell获取服务器权限后,将网页木马挂在服务器.上;

 

搭建靶机漏洞环境

搭建环境-phpstudy配置

DVWA配置:DVWA解压到WWW目录、修改配置文件、浏览器配置

浏览器访问

手工注入原理探究

查看数据表数据: select * from table_ name;

排序: order by(后面的数字超过字段数时候则会报错)

联合查询union (列数相对应返回True)

 

  1. 判断是否存在注入(数字型、字符型)
  2. order by判断列数
  3. union显示显示位
  4. 爆数据

 

常用函数:

system_ user(): 系统用户名

user():数据库用户名

current_ user() :当前用户名

session_ user(): 连接数据库的用户名

database():数据库名

version():数据库版本

Load_ file(): 读取本地文件

Into outfile():写文件

@@datadir:读取数据存储路径

@@basedir: 

读取数据库安装路径

@@version_ compile_ oS: 显示安装版本

 

SQLMAP攻击展示

  1. sqlmap查找注入点
  2. sqlmap提取数据①sqlmap获取所有数据库②sqlmap获取指定数据库的表名③sqlmap获取指定数据库指定表的所有字段④sqlmap获取指定数据

 

如何防御sql注入

1.代码层面:

转义用户输入的内容(PHP中函数: mysql real escape()函数等) ;

限制输入长度;

使用SQL语句预处理(对SQL语句首先进行预编译,参数绑定,最后传参)

2.网络层面:

部署防火墙

3.其它层面:

定期安全测试

作为一名刚刚入职的小白,还有很多没有学到的知识,如果在文章中出现错误,欢迎大家指正。我的邮箱[email protected]

你可能感兴趣的:(安全测试——SQL注入)