2023年即将过去一半,先来灵魂三连问:
- 年初定的目标完成多少了?
- 薪资涨了吗?
- 女朋友找到了吗?
好了,不扎大家的心了,接下来进入正文。
1、SQL注入的原理是什么?
SQL注入攻击是通过将恶意构造的SQL语句插入到应用的输入参数中,再到后台SQL服务器上解析执行的一种攻击方式。
2、SQL注入产生的原因是什么?
程序开发过程中未注意规范书写SQL语句,并且未对输入参数进行过滤。
3、MySQL注入,写入一句话木马需要什么条件?
使用into outfile把木马写入web目录拿到webshell需要以下几个条件:
1.拿到的mysql用户拥有file_priv权限(show global variables like '%secure%'查看)
2.对web目录有写权限
3.知道系统物理路径(需要into outfile (‘路径’))
4、SQL注入的流程是什么?
1.判断注入点(通过扫描器,单引号,特殊符号等)
2.确定注入方式(字符型,数字型,报错注入等)
3.确定数据库类型
4.依次爆出库名–>表名–>列名–>数据
5.得到有用的数据进行利用
5、常见的web中间件有哪些?
1.IIS
2.Apache
3.Nginx
4.Tomcat
5.Jboss
6、MySQL注入,5.0以上和5.0以下有什么区别?
Mysql5.0以后默认添加了一个information_schema的数据库,该数据库中的表都是只读的,不能进行删除,更新,插入等操作。但它记录了数据库中所有的库名、表名、列名等重要信息。
information_schema.schemata:存储了数据库中所有数据库的库名
information_schema.tables:存储了数据库中所有表的表名
information_schema.colums:存储了数据库中所有列的列名
7、SQL注入的种类都有哪些?
1.按照注入点数据类型分:
- 数字型
- 字符型
2.按照数据传参方式分:
- get型
- post型
- header头部注入(UA、COOKIE等)
3.按照注入方法分:
- union注入
- 布尔盲注
- 时间盲注
- 报错注入
- 二次注入
- 宽字节注入
8、什么是宽字节注入?
主要利用mysql在使用GBK编码时,会人为两个字符是一个汉字的特性,在转义单引号(0x27)的时候,如果加了过滤转义符号/(0x5c),我们可以利用GBK编码在/前加0xdf或者其他可以组成汉字的十六进制字符组成一个汉字(df5c)从而将单引号逃逸出来的注入方式。
9、宽子节注入如何防御?
1.数据库使用utf-8编码
2.使用gbk编码的修补方案:
- 使用mysql_set_charset(GBK)指定字符集
- 使用mysql_real_escape_string进行转义
原理:mysqlmysql_real_escape_string与add