2019.4.14
1.英语单词计划(163,164)
2.SQL注入学习: ①使用URL编码绕过字符校验,使用标准/非标准的Unicode编码
②如果存在注入点,但是查询被过滤器阻止,可以使用动态SQL查询
|
–SQL Server: EXEC(‘select …’)
–Oracle: EXECUTE IMMEDIATE的方法
–三种数据库不同的字符串连接技术,ASCLL字符的16进制编码技术
③利用空字节攻击、利用缓冲区溢出、利用截断
ps: kali虚拟机的burpsuite突然无法截断浏览器的请求。。。原因暂时未知
④SQL注入的防御:
|
--(1)避免使用动态SQL查询
--(2)输入验证
|
--白名单: 数据类型,数据大小,数据范围,数据内容
--黑名单+输出编码(尽可能使用白名单)
⑤不同语言的输入验证:
|
--(1)Java: 定义一个实现了javax.faces.validator.Validator接口的验证类,并在相关的jsp文件引用faces-config.xml添加的内容(或者直接使用OWASP ESAPI)
--(2).NET: 使用RegularExpressionValidator 和 CustomValidator 两个内置控件
--(3)PHP: preg_match(regex,matchstring) , is_<type>(input) 等