犀渠玉剑良家子,白马金羁侠少年。这篇文章主要讲述网络安全最全面试题相关的知识,希望能为你提供帮助。
SQL注入的原理是什么?SQL注入攻击是通过将恶意构造的SQL语句插入到应用的输入参数中,再到后台SQL服务器上解析执行的一种攻击方式。
SQL注入产生的原因是什么?程序开发过程中未注意规范书写SQL语句,并且未对输入参数进行过滤。
mysql注入,写入一句话木马需要什么条件?使用into outfile把木马写入web目录拿到webshell需要以下几个条件:
1.拿到的mysql用户拥有file_priv权限(show global variables like %secure%查看)
2.对web目录有写权限
3.知道系统物理路径(需要into outfile (路径))
SQL注入的流程是什么?1.判断注入点(通过扫描器,单引号,特殊符号等)
2.确定注入方式(字符型,数字型,报错注入等)
3.确定数据库类型
4.依次爆出库名-->
表名-->
列名-->
数据
5.得到有用的数据进行利用
常见的web中间件有哪些?1.IIS
2.Apache
3.nginx
4.Tomcat
5.Jboss
MySQL注入,5.0以上和5.0以下有什么区别?Mysql5.0以后默认添加了一个information_schema的数据库,该数据库中的表都是只读的,不能进行删除,更新,插入等操作。但它记录了数据库中所有的库名、表名、列名等重要信息。
information_schema.schemata:存储了数据库中所有数据库的库名
information_schema.tables:存储了数据库中所有表的表名
information_schema.colums:存储了数据库中所有列的列名
SQL注入的种类都有哪些?1.按照注入点数据类型分:
- 数字型
- 字符型
- get型
- post型
- header头部注入(UA、COOKIE等)
- union注入
- 布尔盲注
- 时间盲注
- 报错注入
- 二次注入
- 宽字节注入
宽子节注入如何防御?1.数据库使用utf-8编码
2.使用gbk编码的修补方案:
- 使用mysql_set_charset(GBK)指定字符集
- 使用mysql_real_escape_string进行转义
什么是二次注入?在存入数据库的时候做了过滤,但是在取数据的时候没有做过滤,从而产生的注入方式。
SQL注入如何写入shell?1.利用mysql的into outfile写入webshell
2.利用sqlmap的--os-shell方式写入webshell
SQL注入如何防御?1.SQL预编译
2.严格限制参数类型,只能为数字
3.加入黑白名单
4.转义特殊字符
5.使用WAF
SQL注入如何绕过WAF?1.大小写、双写绕过
2.替换关键字
3.使用编码
4.使用注释
5.使用等价函数与命令
6.使用特殊符号
7.填充垃圾数据
推荐阅读
- Kubernetes 1.15 安装及组件关系(前期准备工作篇)
- 对功能测试的一些思考
- MySQL千万数据方案调研,一不小心直接打挂我系统
- Openharmony3.1编译Hi3516DV300标准版系统体验及img档分享
- AWS RDS Mysql 跨账号迁移
- 环境变量_JAVA_LAUNCHER_DEBUG,它能给你更多的jvm信息
- Redis HyperLogLog 是什么(这些场景使用它,让我枪出如龙,一笑破苍穹)
- 微软向用户强推Win8 Metro界面的理由
- 将Win8/Win 8的Modern锁屏技巧禁用的办法