SQL注入总结
SQL注入集
这几天做了一些墨者靶场的SQL注入的题,发现大同小异
像什么字符型的其实和普通注入的流程是一样的,在注入中遇到的一些点
①(@dmin9_td4b} 一个比较特殊的数据库表名,所以在查询时可以用反引号 `` 括起来
②假如要查询一个字段key,因为它是数据库的关键字,所以也应该用反引号 `` 括起来
③登录框存在注入的话,先尝试万能密码看能否绕过验证
④理论上所有能和数据库产生交互的地方都有可能存在注入,例如当你删除一个帖子的回答时,你可能在url看不到参数,但是抓包可以发现,例如delete注入,我认为只是它的注入的地方不同,性质一样的
⑤字符过滤的问题,一些站点会过滤掉一些关键字,在这种情况下就要先判断它过滤掉了那些字符,那些字符可以代替,有没有绕过的方法,sql语句使用16进制编码
⑥SQL注入的一般流程
判断注入类型和注入点 ——> 判断过滤掉的字符以及确定绕过方法 ——> 判断列数 ——> 查看回显点 ——> 查询数据库库名
——> 查询表名 ——> 查询列名 ——> 查询具体字段
盲注或者时间型注入一些没有回显的注入可以使用length,substring等函数来一个一个查出上述的内容
⑦总结了几个在SQL注入中要知道的东西
数据库元数据 nosql extractvalue() concat() group_concat() if() mid() top() left() right()
⑧有时候需要抓包修改包中的内容来注入,例如我们可以在数据包中加一个X-Forwarded-For来判断它是否存在这种注入
⑨一些在注入时遇到安全其他知识点
无状态连接 缓存污染 密码重置 浏览器渲染引擎 浏览器渲染引擎 X-Requested-With 内联注释 cookie,session,token
SQL注入常用注释字符:#(浏览器不识别) --(后边有空格) 可以变为--+ %23 /**/
常用的绕过姿势,请关注随后博客