首页 > 开发 > JSP > 正文

网站安全不可忽视:一个收费JSP网站的破解过程

2020-02-05 13:41:01
字体:
来源:转载
供稿:网友

  某日在网上偶然打开一个网站,是有plmm与你视频聊天的,但是要手机注册收费。就想找找有没有漏洞可以不花钱就与mm聊天。首先找找有没有sql的空子可钻,打开一个带有参数的页面,http://www.xxx.yyy/abc.jsp?agentid=111116,把后面的参数改一下试试看http://www.xxx.yyy/abc.jsp?agentid=111116'结果:

500 servlet exception
java.lang.numberformatexception: for input string: "111116'"
         at java.lang.numberformatexception.forinputstring(numberformatexception.java:48)
         at java.lang.integer.parseint(integer.java:477)
         at java.lang.integer.parseint(integer.java:518)
         at _agentdetail__jsp._jspservice(d:/timework/timeweb/udate/agentdetail.jsp:12)
         at com.caucho.jsp.javapage.service(javapage.java:75)
         at com.caucho.jsp.page.subservice(page.java:506)
         at com.caucho.server.http.filterchainpage.dofilter(filterchainpage.java:182)
         at com.caucho.server.http.invocation.service(invocation.java:315)
         at com.caucho.server.http.httprequest.handlerequest(httprequest.java:246)
         at com.caucho.server.http.httprequest.handleconnection(httprequest.java:163)
         at com.caucho.server.tcpconnection.run(tcpconnection.java:139)
         at java.lang.thread.run(thread.java:534)

  看来是把字符串转换成数字再处理的,这里好像没戏,再继续找找看,注册和登录都试过了,没用,后来偶然发现一个地方可以上传照片,可以研究一下,结果幸运,传了一个jsp文件上去,居然没有提示错误!后来顺利的由图片的路径找到了传上去的jsp文件的路径,结果试着访问,一切正常
ok,天助我也!随便写了一个访问硬盘上的目录和文件的jsp文件,传了上去,于是通过jsp文件得到了网站的物理路径,又写了一个查看文件内容的jsp,传上去,这下硬盘上的东西都可以看得一清二楚了,要想不用钱就可以登录,还得找到数据库才行,看看里面的jsp代码,看不出什么明堂,都是用的javabean写的,估计是把数据库的操作都封装了,看来从jsp文件下手是没希望了,看看web-inf下边有什么,web.xml看了看,没什么用,在看看classes里面,有一个名字叫做campus.properties的文件,打开看看,梦寐以求的服务器ip,端口,sa的密码都在里面

#campus.properties -- thu jul 01 18:23:20 cst 2004
#thu jul 01 18:23:20 cst 2004
dbconnectiondefaultpool.minconnections=1000
mail.domain=localhost
dbconnectiondefaultpool.server=jdbc/:jtds/:sqlserver/://192.168.1.3/:1433/xxx;charset/=gb2312
mail.encoding=gb2312
infor.typemorepath=typemorelist.jsp
infor.titime=yy-m-d
infor.tilistr=<font size/=2>&/#8226;</font>
sxhcrypt1=426ce28d53728257
infor.msgmorelink=
infor.tipattern=t[m-d]
dbsearchindexer.lastindexed=993035225847
documentoption2=false
infor.css=a3
dbconnectiondefaultpool.logpath=d/://work//web//xxx//web-inf//campusdblog.log
infor.typeviewpath=typeview.jsp
dbconnectiondefaultpool.username=sa
infor.msgmorepath=msgmorelist.jsp
path=d/://work//web//udate//web-inf//classes//campus.properties
setup=true
dbconnectiondefaultpool.connectiontimeout=0.002
mail.smtpport=25
mail.tempdir=d/://myproject//xerinfor//defaultroot//files//mailtmp
campushome=d/://work//web//udate
dbconnectiondefaultpool.maxconnections=3000
infor.tiimgstr=
mail.smtphost=localhost
dbconnectiondefaultpool.driver=net.sourceforge.jtds.jdbc.driver
infor.imgpath=msglist.jsp
infor.msgviewpath=msgview.jsp
dbconnectiondefaultpool.password=xxxxxxxxxxx
(以上关键的地方有所改动)

  有了这些,哈哈,一切都解决了吧!马上写个jsp查询一下数据库里面都有什么表,有个_user表,估计就是用户表,取几条数据试试,果然。。。。

  接下来就好办了,为了不引怀疑还有让无辜的人为我出钱,所以还得注册一个帐户,但不续费
然后把自己的手机号码用update更新成别的不存在的号码,再找到点数那个字段,更新成1000000点
哈哈,一切都搞定!登录一下试试,自己变成有钱人啦!!!由于不想跟网站造成不必要的麻烦,还是不打算公布这个网站出来了,兄弟姐妹们见谅!

  由此可见,网站的安全性非常重要,尤其是收费的网站,如果不注意,轻则让别人免费参观,重则所有数据都over,想象一下如果执行一条delete from _user,这个网站的损失会有多大?我以前写代码的时候都没有注意到此类的细节,经过这次,我想以后一定要注意这些问题了。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表