仓酷云

标题: PHP网站制作之梗塞Web破绽(下) [打印本页]

作者: 简单生活    时间: 2015-2-4 00:19
标题: PHP网站制作之梗塞Web破绽(下)
PHP和HTML混合编程应该不成问题,在这期间,你完全可以让PHP给你算算 一加一等于几,然后在浏览器输出,不要觉得幼稚,这的确是跟阿波罗登月一样,你打的是一小段代码,但是对于你的编程之路,可是迈出了一大步啊!兴奋吧?但是不得不再给你泼点冷水,您还是菜鸟一个。web   处理办法:
(1) 为你的数据库文件称号起个庞杂的十分规的名字,并把他放在几层目次下。所谓“十分规”,打个例如:好比有个数据库要保留的是有关书本的信息,可不要把它定名为”book.mdb“的名字,起个怪怪的称号,好比d34ksfslf.mdb,再把他放在如./kdslf/i44/studi/ 的几层目次下,如许黑客要想经由过程猜的体例失掉你的Access数据库文件就难上加难了;

(2)不要把数据库名写在法式中。有些人喜好把DSN写在法式中,好比:

DBPath = Server.MapPath(“cmddb.mdb”)

conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath

假设万一给人拿到了源法式,你的Access数据库的名字就一目了然。因而建议你在ODBC里设置数据源,再在法式中如许写:

conn.open “shujiyuan”

(3)利用Access来为数据库文件编码及加密。起首在拔取“东西”→“平安”→“加密/解密数据库”,拔取数据库(如:employer.mdb),然后接肯定,接着会呈现“数据库加密后另存为”的窗口,存为:employer1.mdb。接着“employer.mdb”就会被编码,然后存为:employer1.mdb。

注重 :以上的举措并非对数据库设置暗码,而只是对数据库文件加以编码,目标是为了避免别人利用其余东西来检查数据库文件的内容。

接上去咱们为数据库加密,起首以翻开经由编码了的“employer1.mdb”,在翻开时,选择“独有”体例。然后拔取功效表的“东西”→“平安”→“设置数据库暗码”,接着输出暗码便可。

为“employer1.mdb”设置暗码以后,接上去假如再利用Access数据库文件时,则Access会先请求输出暗码,验证准确后才干够启动数据库。

不外要在ASP法式中的Connection对象的open办法中增添PWD的参数便可,例如:

param=“driver={Microsoft Access Driver (*.mdb)};Pwd=yfdsfs”

param=param&“;dbq=”&server.mappath(“employer1.mdb”)

conn.open param

如许即便别人失掉了Fmployer1.mdb文件,没有暗码他是没法看到employer1.mdb的。

5.asp法式暗码验证破绽

破绽描写 :

良多网站把暗码放到数据库中,在上岸验证顶用以下Sql,(以ASP为例)

sql=“select * from user where username=”&username&“and pass=”& pass &”

此时,您只需依据SQL机关一个特别的用户名和暗码,如:ben or 1=1

就能够进入原本你没有特权的页面。再来看看下面谁人语句吧:

sql=“select * from user where username=”&username&“and pass=“& pass&”

or 是一个逻辑运算符,感化是在判别两个前提的时分,只需个中一个前提成立,那末等式将会成立。而在言语中,是以1来代表真的(成立)。那末在这行语句中,原语句的“and”验证将不再持续,而由于“1=1”和“or”令语句前往为真值。

别的咱们也能够机关以下的用户名:

username=aa or username<>aa

pass=aa or pass<>aa

响应的在阅读器真个用户名框内写入:aa or username<>aa 口令框内写入:aa or pass<>aa,注重这两个字符串两端是没有的。如许就能够胜利的骗过体系而进入。

后一种办法实际固然如斯,但要理论长短常坚苦的,上面两个前提都必需具有。

(1)你起首要可以正确的晓得体系在表中是用哪两个字段存储用户名和口令的,只要如许你才干正确的机关出这个防御性的字符串。实践上这是很难料中的。

(2)体系对你输出的字符串不停止无效性反省。

成绩处理和建议:对输出的内容验证和“”号的处置。

6.IIS4或IIS5中装置有Index Server办事会破绽ASP源法式

成绩描写 :

在运转IIS4或IIS5的Index Server,输出特别的字符格局可以看到ASP源法式或其它页面的法式。乃至和添打了比来关于参看源代码的补钉法式的体系,或没有.htw文件的体系,一样存在该成绩。取得ASP法式,乃至global.asp文件的源代码,无疑对体系是一个十分严重的平安隐患。常常这些代码中包括了用户暗码和ID,和数据库的源途径和称号等等。这关于进击者搜集体系信息,停止下一步的入侵都长短常重。

经由过程构建上面的特别法式可以参看该法式源代码 :

http://202.116.26.38/null.htwCiWebHitsFile=/default.asp&CiRestriction=none&CiHiliteType=Full

如许只是前往一些HTML格局的文件代码,然而当你添加%20到CiWebHitsFile的参数前面,以下:

http://someurl/null.htw?CiWebHitsFile=/default.asp%20&CiRestriction=none&CiHiliteType=Full

这将取得该法式的源代码。(注重:/default.asp是以Web的根入手下手盘算。如某站点的http://XXXXXX/welcome.asp)

那末对应就是:

http://someurl/null.htw CiWebHitsFile=/XXXXXX/welcome.asp%20& CiRestriction=none&CiHiliteType=Full)

因为Null.htw文件并不是真实的体系映照文件,所以只是一个贮存在体系内存中的虚拟文件。哪怕你已从你的体系中删除一切的真实的.htw文件,然而因为对Null.htw文件的恳求默许是由Webhits.dll来处置。所以,IIS依然收到该破绽的威逼。

成绩处理或建议 :

假如该Webhits供应的功效是体系必需的,请下载响应的补钉法式。假如没需要,请用IIS的MMC办理东西复杂移除“.htw”的映象文件。

7.NT Index Server存在前往下级目次的破绽

成绩描写 :

Index Sserver2.0是WinNT4.0 Option Pack中附带的一个软件的东西,个中的功效已被WinNT/2000中的Indexing Services所包括。当与IIS联合利用时,Index Server和Indexing Services即可以在最后的情况来阅读Web Search的了局,它将生成一个HTML文件,个中包括了查找后所前往页面内容的冗长援用,并将其毗连至所前往的页面[即合适查询内容的页面],也就是超等毗连。要做到这一点,它便需求撑持由Webhits.dll-ISAPI法式处置的.htw文件类型。这个Dll答应在一个模版中利用“../”用做前往下级目次的字符串。如许,懂得办事器文件布局的进击者即可以近程的浏览该机械上的恣意文件了。

破绽的使用 :

(1)您的体系中存在.htw文件

Index Server供应的这类超等毗连答应Web用户取得一个关于他搜索了局的前往页,这个页面的名字是与CiWebHits File变量一同经由过程.htw文件的,Webhits.dll这个ISAPI法式将处置这个恳求,对其停止超等毗连并前往该页面。因而用户即可以掌握经由过程.htw文件的CiWebHits变量,恳求就任何所但愿取得的信息。别的存在的一个成绩即是ASP或其他剧本文件的源代码也能够使用该办法来取得。

下面咱们说过Webhits.dll后接上“../”即可以会见到Web虚拟目次外的文件,上面咱们来看个例子:

http://somerul/iissamples/issamples/oop/qfullhit.dll?CiWebHits File=/../../ winnt/system32/logfiles/w3svc1/ex000121.log&CiRestriction=none&CiHiliteType=Full

在阅读器中输出该地址,即可以取得该办事器上给定日期的Web日记文件.

在体系罕见的.htw样本文件有:

/iissamples/issamples/oop/qfullhit.htw

/iissamples/issamples/oop/qsumrhit.htw

/iissamples/exair/search/qfullhit.htw

/iissamples/exair/search/qsumrhit.hw

/iishelp/iis/misc/iirturnh.htw [这个文件凡是受loopback限制]

(2)您的体系中不存在.htw文件

挪用一个Webhits.dll ISAPI法式需求经由过程.htw文件来完成,假如您的体系中不存在.htw文件,固然恳求一个不存在的.htw文件将掉败,然而您的依然存在可被使用的破绽。个中的诀窍即是使用Inetinfo.exe来挪用Webhits.dll,如许一样能会见到Web虚拟目次外的文件。但咱们需求经由过程制造一个的特别的URL来完成这个文件必需是一个静态的文件,如“.htm”,“.html”,“.txt”或“.gif”,“.jpg”。这些文件将用作模版来被Webhits.dll翻开。如今咱们需求取得Inetinfo.exe来使用Webhits.dll,独一可以做到这点的即是恳求一个.htw文件:

http://url/default.htm.htw CiWebHitsFile=/../../winnt/system32/logfiles/w3svc1/ex000121.log &CiRestriction=none&CiHiliteType=Full

很分明,这个恳求一定会掉败,由于体系上不存在这个文件。但请注重,咱们如今已挪用到了Webhits.dll,咱们只需在一个存在的文件资本前面[也就是在.htw后面]加上一串特别的数字(%20s ),[就是在例子中“default.htm”前面加上这个代表空格的特别数字],如许咱们即可以棍骗过Web办事器从而到达咱们的目标.因为在缓冲局部中.htw文件名字局部被删除失落[因为%20s这个符号],所以,当恳求传送到Webhits.dll的时分,即可以胜利的翻开该文件,并前往给客户端,并且过程当中其实不请求体系中真的存在.htw文件。

成绩处理和建议 :

微软已对该成绩发放了补钉:

Index Server 2.0:

Intel: http://www.microsoft.com/downloads/release.asp ReleaseID=17727

Alpha: http://www.microsoft.com/downloads/release.asp?ReleaseID=17728

Windows 2000 Indexing Services:Intel: http://www.microsoft.com/downloads/release.asp?ReleaseID=17726

8.绕过验证直接进入ASP页面

  既然选择了PHP,就要坚持学下去!大家有没有问自己为什么会选择学习PHP呢?就我个人而言,完全是因为兴趣,因为我的专业和计算机完全无关,但是就是对编程很赶兴趣,尤其对网络编程、web开发特别赶兴趣。
作者: 不帅    时间: 2015-2-5 11:40
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 飘灵儿    时间: 2015-2-11 14:35
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者: 再见西城    时间: 2015-2-13 22:56
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: 精灵巫婆    时间: 2015-3-4 02:41
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者: 兰色精灵    时间: 2015-3-11 15:14
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 仓酷云    时间: 2015-3-18 21:46
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
作者: 因胸联盟    时间: 2015-3-24 04:46
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 小妖女    时间: 2015-3-24 13:51
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者: 若相依    时间: 2015-4-3 23:54
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
作者: 谁可相欹    时间: 2015-4-12 09:08
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 小魔女    时间: 2015-5-7 04:50
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
作者: 愤怒的大鸟    时间: 2015-5-8 10:36
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
作者: 分手快乐    时间: 2015-6-9 15:10
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者: 透明    时间: 2015-7-18 12:14
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者: 深爱那片海    时间: 2015-7-26 03:08
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 海妖    时间: 2015-10-10 09:13
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 飘飘悠悠    时间: 2015-10-14 06:24
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者: 活着的死人    时间: 2015-10-26 10:55
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
作者: 小女巫    时间: 2015-10-31 18:17
实践是检验自己会不会的真理。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2