2019.3.24
1.英语单词学习计划(123、124)
2.SQL注入学习:
①SQL Server中可以用除法错误来暴露一些数据,例如 1=0/@@version 来暴露版本信息, 1=0/user来暴露用户等 用group by 和 having 字句来暴露列名, 例如 group by name having '1'='1 只要出错就会返回第一列,by后一直跟多列即可
②可以使用web.config文件配置ASP.NET服务,将customerErrors设置为OFF,可防止向远程用户返回详细错误信息,PHP则在die()
方法内设置需要的处理即可
③字符串内联注入: 所有数据库通用测试字符串 : ' 或者 1' or '1'='1 或者 1') or ('1'='1 或者 1' or '1'='2 或者 1') or ('1'='2
SQL Server 字符串连接测试 : 1' or 'ab'='a'+'b 或者 1') or ('ab'='a'+'b
MySQL 字符串连接测试 : 1' or 'ab'='a''b 或者 1') or ('ab'='a''b
Oracle 字符串连接测试 : 1' or 'ab'='a'||'b 或者 1') or ('ab'='a'||'b
数字值内联注入: ' 或者 1+1 或者 1 or 1=1 或者 1 and 1=2 或者 value or 1=2
3-1 或者 1) or (1=1 或者 1) and (1=2 或者 value) or (1=2
④了解终止式SQL注入的思想,即通过注释来执行多条想要执行的SQL语句,了解通过时间延迟来判断注入漏洞的思想
3.复查代码中的SQL注入 :
①注意到 \$result = mysql_query("SELECT * FROM table WHERE column = '\$_GET["param"]'");
\$result = mysql_query("SELECT * FROM table WHERE column = '\$param'");
有所不同,前者的$param变量未经验证直接参与构造了查询语句,很容易引发SQL注入,是寻找的漏洞的目标
②使用grep和正则搜索源码中的所有可疑的函数
4.运动计划正常完成
ps:有个疑问,目前互联网上的web页面到底有多少是有很明显的SQL注入漏洞的呢?
ps:感冒了还去跑步我可能有点作死