您现在的位置是:热点 >>正文

使用sql对端口进行渗透测试

热点5331人已围观

简介 凌晨两点,我盯着终端里那条报错记录——某政府门户的搜索接口返回了完整的SQL异常堆栈。这不是什么高深漏洞,只是开发忘了过滤单引号。但就是这一条报错,让整个数据库结构像摊开的病历本一样暴露在眼前。端口 ...

凌晨两点,使用渗透我盯着终端里那条报错记录——某政府门户的对端口搜索接口返回了完整的SQL异常堆栈。这不是进行什么高深漏洞,只是测试开发忘了过滤单引号。但就是使用渗透这一条报错,让整个数据库结构像摊开的对端口病历本一样暴露在眼前。端口扫描只是进行敲门砖,SQL注入才是测试真正撬开保险柜的撬棍。

先别急着上sqlmap。使用渗透手工探测才是对端口基本功。我用nmap扫出3306端口开放时,进行第一反应不是测试直接连,而是使用渗透先看版本信息。MySQL 5.5.20——这版本存在UDF提权漏洞,对端口但前提是进行得拿到数据库权限。端口本身不会说话,但结合中间件指纹和响应头里的X-Powered-By,能推断出后端语言和框架。比如ThinkPHP的报错页面会泄露数据库配置信息,Laravel则会把.env文件路径吐出来。

真正有意思的是绕过WAF。某次渗透测试,目标网站装了安全狗,我试了十几次经典payload全被拦截。后来发现参数值被URL解码两次——安全狗只检查第一次解码后的内容。我把payload编码成%2527,服务器端第二次解码后变成单引号,直接绕过。这种攻防对抗的细节,比工具扫描有趣多了。

端口渗透不是孤立的。3306开放往往意味着同网段还有其他服务。我习惯先扫全端口,把80、443、8080这些web端口和数据库端口关联起来看。有一次发现目标只开了3306和22,但22端口是SSH。尝试用弱口令爆破,root/123456居然直接进去了。数据库端口没攻破,倒是从系统端口撕开了口子。别小看这种土办法,很多内网服务器密码简单得吓人。

说到SQL注入的实际操作,最怕遇到过滤了空格的情况。用/**/代替空格,或者用括号包裹表达式,都是老套路。但碰上过滤了注释符的,就得另辟蹊径。比如用MySQL的版本号特性:select*from(select(version()))x——这招能绕过多数过滤规则。当然,前提是能确定目标数据库类型。Oracle和SQL Server的语法差异很大,盲目套payload只会浪费时间。

提权阶段才是真正考验耐心的时候。MySQL低权限用户读不了文件,但可以通过load_file()读取/etc/passwd。如果恰好web应用有文件上传功能,可以把UDF写到插件目录。某次测试,目标用了阿里云的RDS,权限隔离做得严实,折腾两小时没提权成功。最后发现同服务器的另一个站点用了老版本phpMyAdmin,直接通过它的SQL执行功能获取了系统shell。端口渗透从来不是单点突破,而是组合拳。

写这篇的时候,我看了眼时间——凌晨三点十五分。窗外有只野猫在叫,像极了那些没被发现的注入点。渗透测试就是这样,90%的时间在踩坑,10%的瞬间让你觉得一切都值得。下次再遇到开放3306的端口,别急着跑脚本。先泡杯咖啡,手工测几个参数,说不定能发现比sqlmap更有意思的东西。

Tags:

相关文章

  • 日本视频种子

    热点

    日本视频种子,这词儿听着就带点地下感。我头一回接触,是2015年,在秋叶原一家电器店角落的二手硬盘堆里。那店主是个秃顶老头,指着一块贴着“データ復旧済み”标签的硬盘说,里面全是“消えたアニメ”。我没听 ...

    【热点】

    阅读更多
  • 女性诬告性骚扰的事件

    热点

    林芳在微信上打出“他摸了我”四个字时,手指是抖的。三天后,那个教了她两年公共课的副教授被停职调查。监控录像显示,走廊里两人始终保持着半米以上的距离——这是后来警方通报里最刺眼的一句话。 诬告当然存在。 ...

    【热点】

    阅读更多
  • 学校教务管理系统登录

    热点

    登录框弹出来的那一刻,我盯着那个熟悉的蓝白界面,心里想的却是上周教务处的王老师对着屏幕骂了句脏话——她的密码又过期了,而系统提醒她改密码的弹窗,恰好在录入成绩的当口跳出来,把没保存的数据全吞了。 这个 ...

    【热点】

    阅读更多


友情链接