shopxp网上购物系统 v7.4存在SQL注入漏洞

shopxp网上购物系统 v7.4存在Sql注入漏洞。
问题文件:xpCatalog_xpDesc.asp,xpCatalog_xpsmall_Desc.asp
问题代码:
<%

dim shopxpbe_id, anclassname, shopxpse_id, nclassname
dim totalPut
dim CurrentPage, TotalPages

if request("shopxpbe_id")<>"" then
shopxpbe_id=request("shopxpbe_id")
else
shopxpbe_id=0
end if
if request("shopxpbe_id")="" then
shopxpbe_id=1
end if
if not isempty(request("page")) then
currentPage=cint(request("page"))
else
currentPage=1
end if

set rs=server.createobject("adodb.recordset")
rs.open "select * from shopxp_btype where shopxpbe_id="&shopxpbe_id,conn,1,1
anclassname=rs("shopxpbe_name")
rs.close
%>
并没有对shopxpbe_id进行整形判断。下面在说说他的防注入系统。好像是网上的枫叶防注入。看代码吧:
Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx
Fy_Cl = 2 '处理方式:1=提示信息,2=转向页面,3=先提示再转向
Fy_Zx = "../" '出错时转向的页面
On Error Resume Next
Fy_Url=Request.ServerVariables("QUERY_STRING")
Fy_a=split(Fy_Url,"&")
redim Fy_Cs(ubound(Fy_a))
On Error Resume Next
for Fy_x=0 to ubound(Fy_a)
Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1)
Next
For Fy_x=0 to ubound(Fy_Cs)
If Fy_Cs(Fy_x)<>"" Then
If Instr(LCase(Request(Fy_Cs(Fy_x))),"'")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"and")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"select")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"update")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"chr")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"delete%20from")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),";")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"insert")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"mid")<>0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),"master.")<>0 Then
Select Case Fy_Cl
省略部分代码

这个防注入系统在网上貌似很火,但是他防的是有问题的。关键是这句,Fy_Url=Request.ServerVariables("QUERY_STRING"),Request.ServerVariables得到的数据是原样的,并不会进行URL解码。这也就导致可以进行URL编码绕过这个防注入。以下是lake2对这段代码的分析:

“它的思路就是先获得提交的数据,以“&”为分界获得并处理name/value组,然后判断value里是否含有定义的关键字(这里为求简便,我只留下了“and”),有之,则为注射。

乍一看去,value被检查了,似乎没有问题。呵呵,是的,value不会有问题,可是,name呢?

它的name/value组值来自于Request.ServerVariables("QUERY_STRING"),呵呵,不好意思,这里出问题了。Request.ServerVariables("QUERY_STRING")是得到客户端提交的字符串,这里并不会自动转换url编码,哈哈,如果我们把name进行url编码再提交的话,呵呵,那就可以绕过检查了。比如参数是ph4nt0m=lake2 and lis0,此时程序能够检测到;如果提交%50h4nt0m=lake2 and lis0(对p进行url编码),程序就会去判断%50h4nt0m的值,而%50h4nt0m会被转换为ph4nt0m,所以%50h4nt0m值为空,于是就绕过了检测。

等等,为什么既然name不解码可以绕过检查而value就不能绕过呢?因为value的值取自Request(Fy_Cs(Fy_x)),这个服务器就会解码的。

程序怎么改进呢?只要能够得到客户端提交的数据是解码后的就可以了,把得到name的语句改为For Each SubmitName In Request.QueryString就可以了。”

下面说下利用:
Google:inurl:xpCatalog_xpDesc.asp?action_key_order=big
inurl:Catalog_Desc.asp?action_key_order=big (这个貌似是商业版的)
构造如下地址:
http://www.xxx.com/xpCatalog_xpDesc.asp?action_key_order=big&shopxpbe_%69d=79 (对i进行URL编码),交给工具 手动添加表名:shopxp_admin 和shop_admin(商业版的)
默认后台是 admin_shopxp 或者admin

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
shopxp购物系统加强版是北京易通首次推出的2006新版源码,本套系统与shoxp4.50之前有着鲜明的对比 ,系统集成了最新的网银支付系统,最新的支付宝接口。专题分类、新闻分类、关键词设置、邮件配置 等部分功能设置项目首次提供给广大网友下载使用。 本次发布的shopxp购物系统加强版以“运行快”为本,在不改变功能使用的基础上减轻服务器压力,将 服务器资源消耗降到最低.加强女人缘和商业街的风格设计,开放式远程商店管理;完善的订单管理、销 售统计、结算系统;强力搜索引擎支持;提供网上多种在线支付方式解决方案;强大的技术应用能力和 网络安全系统,同时拥有灵活多变的商品管理、新闻管理等功能,功能强劲的后台管理界面,它为您提 供了多款专业美观的店面样式、俱备完整的购物网站功能、结构简单、容易使用、并设有促销广告和店 标自定义功能,操作简单,您不需懂得太多的计算机知识,也无需制作复杂网页. 功能概述: 商品属性:颜色属性、尺寸属性、规格、单位、品牌、关键词设置、组合图、html编辑 信息管理:专题分类、新闻分类、公告、帮助信息 系统管理:商城基本设置、支付方式设置、配送方式设置、客服QQ设置、在线支付、支付宝、邮件配置 模版管理:商业街、女人缘 邮件管理:初始设置、客户邮件群、群发、下订单自动回信 会员功能:会员积分、预存款、收藏,会员资料修改、订单查看、订单修改、以往购物记录等等功能。 可升级VIP会员支持会员价格 和 VIP价格 商品分类:后台可以变换分类样式,展开和并分类,并提供特价 新品 推荐等分类 购买功能:支持会员购买、游客购买、批发购买、团购、预购、预存款购买 订单项目:具备电话订单管理,和团购订单管理,系统自动将客户资料、产品资料、总金额、支付方式 、配送方式等信息自动生成完善的订单,并发送到商店管理后台,供商店管理员实时进行处理。 管理选项:管理员可以针对任意一项操作赋予权限,数据库压缩 备份还原等

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值