web安全知识整理

常见漏洞

sql注入

原理:sql注入攻击是通过将恶意的SQL查询语句插入到应用的输入参数中,欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息

分类

   1、注入类型:字符型, 数字型

   2、提交方式:GET ,POST, COOKIE

   3、获取信息的方式:基于报错,盲注,基于回显

防御:

  1、校验用户输入,过滤特殊字符

  2、进行参数绑定,限制用户输入

  3、使用sql语句预处理,对sql语句首先进行预编译,然后进行参数绑定,最后传入参数。

判断方式:

  1、单引号判断法
  2、and 1=1 and 1=2 同真为真,其余为假
  3、or 1=1 or 1=2 同假为假,其余为真

注入方法

  https://blog.csdn.net/weixin_43915762/article/details/87909751

宽字符注入的原理?如何利用宽字符注入漏洞,payload如何构造?

原理:
  MysqL数据库在使用宽字节(GBK)编码时,会认为两个字符是一个汉字(前一个ascii码要大于128(比如%df),才到汉字的范围),而且当我们输入单引号时,MysqL调用转义函数,将单引号变为\’,其中\的十六进制是%5c,MysqL的GBK编码,会认为%df%5c是一个宽字节,也就是’運’,从而使单引号闭合(逃逸),进行注入攻击
%df‘ 会被PHP当中的addslashes函数转义为%df\‘ ,“\”既URL里的“%5C”,那么也就是说,%df‘会被转成%df%5C%27倘若网站的字符集是GBK,MysqL使用的编码也是GBK的话,就会认为%df%5C%27一个宽字符。也就是“縗’”

绕过方法参考文章

报错注入

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些