Web学习27

  1. 知识点
  2. 案例
    1. 真实WEB-数据编码接受处理-base64注入
    2. 墨者靶场-字符转义处理防护-宽字节注入
  3. 思维导图

知识点

数字型 0-9
字符型 a-z 中文 标点符号
开发程序里面,数字不需要单引号,字符需要单引号 双引号去概括的

需要考虑到符号的闭合 才能去正确执行SQL 完成SQL注入

案例

本地源码-数字&字符&搜索&编码&JSON
墨者靶场-字符转义处理防护-宽字节注入
真实WEB-数据编码接受处理-base64注入
真实WEB-JSON数据格式&MD5加密数据
工具脚本-SQLMAP-脚本Tamper使用指南

真实WEB-数据编码接受处理-base64注入

经过base64编码以后再传参就行

数据的表现形式
json
{“username”:”admin”,”password”:”xiaodi”}
username = admin & password = xiaodi

传入json={“username”:”admin’ and 1=2 union select 1,database(),3#”}

有很多网站在传递数据的时候不一定是明文,所以在注入的时候也要设计相应的payload去注入

输入id=4 order by 10的base64编码,报错

输入 3没报错,4报错,得出字段数3个

报错查看回显点位为2,3

查询数据库名和版本

查表

查列名

查具体数据
4 and 1=222 union select 1,user_id,password from admin

sqlmap自动化注入:这是编码型注入,不能直接用sqlmap跑,

将注入payload进行编码,这样就能判定出注入点了

墨者靶场-字符转义处理防护-宽字节注入

接收数据,但是数据会出现\ /符号
\n 换行


自动加了斜杠导致没有办法闭合,导致注入失败
\ 一个字节
%df 两个字节 把\占用了,所以就成功闭合了

sqlmap里的unmagicquotes可以绕过这个转义函数,就可以注入了

总结:
扫描,利用工具等都不会自动判断数据类型、格式等,所以即使有漏洞也测不出来,具体还是需要人工的去观察,运行工具的修改或加载插件再次探针才可以。

思维导图