看到了一段防止SQL注入的JavaScript代码,但是似乎在后台解决的话会更好。

[php]
<SCRIPT language="JavaScript">
function Check(theform)
{
if (theform.UserName.value=="")
{
alert("请输入用户名!")
theform.UserName.focus();
return (false);
}
if (theform.Password.value == "")
{
alert("请输入密码!");
theform.Password.focus();
return (false);
}
}
function IsValid( oField )
{
re= /select|update|delete|exec|count|‘|"|=|;|>|<|%/i;
$sMsg = "请您不要在参数中输入特殊字符和SQL关键字!"
if ( re.test(oField.value) )
{
alert( $sMsg );
oField.value = ‘‘;
oField.focus();
return false;
}
}
</SCRIPT>

<input name="UserName" type="text" maxlength="20" id="UserName" onblur="IsValid(this);" style="width:125px;" />
<input name="Password" type="password" maxlength="20" id="Password" onblur="IsValid(this);" style="width:125px;" />
[/php]

JS实现浏览器菜单命令

<object id=min classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"><param name="Command" value="Minimize"></object>

<object id=max classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"><param name="Command" value="Maximize"></object>

<object id=close classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"><PARAM NAME="Command" value="Close"></object>

<input type=button value=最小化 onclick=min.Click()>

<input type=button value=最大化 onclick=max.Click()>

<input type=button value=关闭 onclick=close.Click()></div>

<INPUT type=button onclick="document.execCommand(‘open‘)" value=打开>

<INPUT type=button onclick="document.execCommand(‘saveas‘)" value=保存>

<INPUT type=button onclick="document.execCommand(‘print‘)" value=打印>

<INPUT type=button onclick="document.execCommand(‘selectall‘)" value=全选>

<INPUT type=button onclick="location.replace(‘view-source:‘+location)" value=源文件>

<INPUT type=button onclick="window.external.ShowBrowserUI(‘PrivacySettings‘,null)" value=安全选项>

<input type=button onClick="window.external.ShowBrowserUI(‘LanguageDialog‘, null)" value=语言设置>

<INPUT type=button onclick="window.external.AddFavorite(location.href, document.title)" value=加入收藏夹>

<INPUT type=button onclick="window.external.ShowBrowserUI(‘OrganizeFavorites‘, null)" value=整理收藏夹>

<INPUT onclick=history.go(-1) type=submit value=后退>

<INPUT onclick=history.go(1) type=submit value=前进>

<input type=button value=刷新 name=refresh onclick="window.location.reload()">

<input type="button" value="导入收藏夹" onClick=window.external.ImportExportFavorites(true,‘‘);>

<input type="button" value="导出收藏夹" onClick=window.external.ImportExportFavorites(false,‘‘);>

  Blog被人渗透了一下,不知道各位掉了什么东西没有。原来有一次blog的目录可以列出来,那次我掉了一个小东西,然后今天别人告诉我NBSI 3用了那个东西的方法……呵呵,有点晕,就是下面的,成功率还是很高的,大家可以试试看。嗯,方法流出去无所谓,文章留着吧。

  dbowner通过注射得到一个shell应该不是什么难事情了,比较麻烦的是就算利用增量备份,仍然有很多不确定的因素,如果之前别人有过什么错误的写入信息,可能备份出来得到的还是一些不能用的500错误,如何能够提高成功率及重用性呢?如果单从调整增量备份的方式来看,尽管能够达到一些效果,但是方法比较复杂而且效果不明显。加上关于重用性的考虑,例如多次备份的成功率,backup database的方法并不太适用。这里将要讲述的是另外一个备份的方法,导出日志文件到web目录来获得shell。

  饭要一口一口的吃,技术问题也要一个一个的解决,得到webshell首先要知道物理路径,然后才能说其他的。关于物理路径的暴露有很多方法,注入也可以得到,这点nbsi2已经做到了,就不再多说。值得注意的是,如果数据库和web分离,这样肯定得不到webshell,备份出来的东西可以覆盖任何文件,一些关于开始菜单的想法还是有效的,只要注意扩展名就好。扯远了,反正如果数据库和web在一块的,你就有机会,反之还是想其他的办法吧。

  然后你要得到当前的权限和数据库名。如果是sysadmin当然没有必要做很复杂的事情,dbowner足矣,public则不行。当前打开的库名用一个db_name()就可以得到,同样很简单。

  默认的情况是,一般选择的数据库故障还原类型都是简单,这时候不能够对日志文件进行备份。然而我们都是dbowner了,还有什么不能做的呢,只要修改一下属性就可以。由于不能去企业管理器中修改,只有用一段SQL语句,很简单的,这样就可以:

alter database XXXX set RECOVERY FULL

  其中XXXX是你得到的数据库的名字,执行过后就可以备份日志了。这种修改是破坏性的,因为你不知道以前的故障还原模式是什么,细心的管理员看到异样,可能就要开始起疑心。如果之前你能得到数据库的状态,最好还是在备份完以后把这个数据库的属性改回来。

  剩下的事情就是怎样让数据库用最原始的方式记录下你的数据了。这一点和backup database中设定表名为image的问题相对应,如果你只是建立一个之类的表,日志里面的记录还是以松散的格式记录的,也就是< % % >,没有任何效果。通过实际的测试,发现还是可以通过与backup database类似的方式记录进去,如下:

create table cmd (a image)
insert into cmd (a) values (’’)
backup log XXXX to disk = ’c:xxx2.asp’

  这样你已经得到一个webshell了。

  到这里就完了么?没有,呵呵,我们继续。

  到这里有两个分支方向,第一个,让注入的时候不出现单引号,太简单了,我都懒得写;第二个,减小这个webshell的长度以及提高成功率。下面的方法就是讨论第二个分支问题的,同样适用于backup database的减小。

  首先是初始化这个日志。

backup log XXXX to disk = ’c:caonima’ with init

  这样有点类似于增量备份的第一步,不过有点不同的是,你做了这个以后,你备份出来的可用的shell是固定的。这一点比较重要,因为有了这一步,不管管理员在数据库里面做了什么扰乱你back database的手脚,或者你之前有多少混蛋(你肯定会这么想的)弄了些你不喜欢的东西,都没有关系,甚至你做过以后,别人在后面再按照你的方法来一次,还是会成功,这对于偶尔出现的反复,比如对方机器重装但是数据库和代码没变,有不小的帮助。

  然后是调整一下backup中各个语句的顺序。通过第一点,大概的步骤已经确定下来了,那就是:

alter database XXXX set RECOVERY FULL
backup log XXXX to disk = ’c:Sammy’ with init
create table cmd (a image)
insert into cmd (a) values (’’)
backup log XXXX to disk = ’c:xxx2.asp’

  这样不好,感觉上多了一条没用的东西。

create table cmd (a image)

  确实有点讨厌,不过这句是必要的,只好调整一下位置,弄到其他地方去。调换一下顺序似乎还可以小一点,对于backup database中的增量情况同样是可以的,backup database甚至可以仅仅在update后马上备份,不过由于涉及到了数据的存储格式,情况很复杂,这里不讨论。调整后的是:

alter database XXXX set RECOVERY FULL
create table cmd (a image)
backup log XXXX to disk = ’c:Sammy’ with init
insert into cmd (a) values (’’)
backup log XXXX to disk = ’c:xxx2.asp’

  成功的话,备份出来的shell(上面的2.asp)有78.5k,文件长度固定的是80,384字节。很挑剔的朋友也可以接受了吧,当然用这个来生成一个干净的木马也可以——这本来就是顶端cs木马的s端,很通用的。

  到今天为止(2006.07.06)的各类存储卡的报价:

 

Multi Media Card–MMC卡
容量 创见 EagleTec PQI Kingston 威刚 Kingmax
128MB — — — — — —
256MB 115 — — — — 75
512MB — 115 110 110 — 95
1GB — — — 220 — 160
RS-MMC 128MB — — — — 90 —
RS-MMC 256MB 95 — 110 100 110 90
RS-MMC 512MB 120 135 135 120 120 100
RS-MMC 1GB 240 220 215 235 — 195
 
Memory Stick–MS记忆棒
容量 SanDisk LEXAR Sony

   Memory Stick Pro

256MB长棒 — — 170
512MB长棒 250 — —
1GB长棒 — — —
2GB长棒 350 — —
UltraII 2GB长 390 — —
UltraII 4GB长 820 — —
ExtremeIII 2GB长 430 — —

  Memory Stick Pro Duo

256MB短棒 155 — 170
512MB短棒 175 170 280
1GB短棒 285 275 —
2GB短棒 565 — —
UltraII 2GB短 875 — —
 
Compact Flash–CF卡
容量 SanDisk KingMax Kingston LEXAR PQI 威刚 创见
128MB — 85 — — — — —
256MB 138 100 115 — — — —
512MB 155 125 130 — 120 140 140
1GB 215 225 225 — 225 245 215
2GB — 420 — — — — 418
高速256MB — — — — — — —
高速512MB — — 165 — — — —
高速1GB — — 265 385 — — —
高速2GB — — 455 690 — — 420
高速4GB — — 1050 3820 — — 848
高速8GB — — — — — — 1850
ExtremⅢ 1GB 395 — — — — — —
ExtremⅢ 2GB 905 — — — — — —
ExtremⅢ 4GB — — — — — — —
UltraⅡ 1GB 315 — — — — — —
UltraⅡ 2GB 705 — — — — — —
UltraⅡ 4GB — — — — — — —
UltraⅡ 8GB — — — — — — —
 
xD-Picture Card
容量 OLYMPUS 富士 LEXAR
128MB — — —
256MB 205 190 195
512MB 310 280 290
1GB — 415 410
 
Secure Digital Card–SD卡
容量 SanDisk KingMax Kingston LEXAR EagleTec PQI 威刚 创见
128MB — — — — — — — —
256MB — — — — — — 70 —
512MB 95 85 95 125 100 95 — 85
1GB 175 165 175 195 190 165 170 165
2GB 370 345 385 — — — — 330
高速256MB — 85 — — — — — —
高速512MB 180 100 — — 100 110 120 —
高速1GB 310 230 245 — — — — 220
高速2GB 620 350 455 — — — 800 415
高速4GB — 710 — — — — 1650 848
 
Mini Secure Digital Card–Mini SD卡
容量 SanDisk KingMax Kingston EagleTec PQI 威刚 创见
128MB — 60 — — — — —
256MB — 90 — 95 — — 95
512MB 100 110 125 130 125 125 125
1GB 195 195 225 — 210 215 235
2GB 415 — — — — — —
 
Micro Driver–微硬盘
容量 日立
2GB 870
4GB 1380
6GB 1990
 
TransFlash–TF卡(Micro SD)
容量 SanDisk Kingston 威刚 Kingmax
128MB 125 — 70 60
256MB — 90 — 100
512MB 185 150 — 150
1GB 300 — — —

经典啊!两队一直互攻!一直到加时赛最后3分钟,意大利接连进二个球。2:0淘汰了德国队!精彩啊!

格罗索!皮耶罗!特别是格罗索的那一脚弧线球!那个帅啊!!!

图片附件:
u1340p427t6d93068f172dt20060705065857.jpg

因为现在把yngps.cn转到了新站点,一些老的软件下载地址就不好找了。我发它发到我的Blog上吧,大家也好Download:

 

 

地图下载

昆明交通图
昆明百姓生活休闲旅游图(农家乐地图)
昆明地区地图(四区八县)
云南交通图

上面OZI格式的地图都是经过校准的

 

   

 

 

城际通PC版,附特殊文件:
ftp://ftp.yngps.cn/CJT.zip

灵图3.05 PPC绿色版,Copy到卡即可使用。让输入序列号的话随便输入
ftp://ftp.yngps.cn/LT_3_05_10_For_PPC.rar

中国电子地图2005
ftp://ftp.yngps.cn/MapChina.2005.rar

中国电子地图2006
ftp://ftp.yngps.cn/MapChina2006.zip

北京电子地图2006
ftp://ftp.yngps.cn/bjmap2006.rar

广州电子地图
ftp://ftp.yngps.cn/gzmap.iso

以上软件仅作个人测试用,如要使用请购买正版软件。

平时在网上浏览,不可避免会“逛”到一些国外网站上面。面对一堆“鸡肠”,没那几年英语学习的功夫,很难不头晕目眩。不过车到山前必有路,其实我们不必捧着字典逐字逐词查找,完全可以通过网络解决这些问题——网络中的很多在线翻译网站,可以提供我们所需要的翻译服务。

现在大部分在线翻译网站使用的都是机器翻译。机器翻译是一项允许您用某种语言输入文本然后由计算机将其翻译为另外一种语言的技术。尽管机器翻译并不能创造尽善尽美的翻译,但至少可以向一部分不大熟悉外语的用户提供一些阅读要点,了解文章大意。

下面我们来介绍一些比较好用的在线翻译网站:

Google的翻译功能
地址:http://www.google.com/language_tools?hl=zh-CN

提起在线翻译首先要说的当然是Google的语言工具。除了可以在搜索结果页面上点击“翻译此页”,直接得到该页面的中文翻译结果之外,在主页上选择“语言工具”也可以进入Google的翻译工具栏。

Google的翻译工具除了可以实现大段文字的翻译,还提供整站翻译,在“翻译网页”处输入网站地址,选择好目标翻译语言即可。翻译工具可以实现中文、英语、法语、德语、意大利语、日语、朝鲜语、葡萄牙语、阿拉伯语以及西班牙语等主要语种间的互译。

优点:得益于所存储的海量信息,Google的在线翻译质量相对比较高。基本上,在Google上翻译过来的中文,仅仅存在一些语法及顺序上的差错。

缺点:遇上较长的文章时,Google翻译工具会耍耍大小姐脾气,翻到一半便“赌气”不干了。任凭你刷新几次,翻译就是在中间某一处停住,让你气也不是骂也不是。

综合评定:准确率较高,也比较方便,可以直接翻译搜索出来的页面。如果改改臭脾气,相信会更好。

WorldLingo
地址:http://www.worldlingo.com/zh/microsoft/computer_translation.html

WorldLingo不仅可以在网站连接中使用,如果安装了OFFICE的连网计算机,还可以向MicrosoftWord提供翻译服务。它可实现中文、英语、法语、德语、意大利语、日语、朝鲜语、葡萄牙语、俄语以及西班牙语等语种间的互译。

优点:该网站提供了4种服务,包括网站翻译、文档自动翻译、电子邮件翻译和人工专业翻译。整站翻译只需直接将网站的地址输入到地址栏,然后选择好目标翻译语言即可。电子邮件翻译也跟普通电子邮件的书写方法、格式差不多。

缺点:最大的毛病在于“慢”,无论是在进行整站翻译的时候,还是在进入翻译网站的二级链接的时候都是如此。而且在对文档进行翻译的时候只能逐句翻译,不能对大段的文章进行整体翻译,略显不便。

综合评定:在翻译准确率和翻译的连贯性上有比较出色的表现,人性化设计也比较好,需要提高的是速度。

金山在线翻译
地址:http://www.sowang.com/jinshanciba.htm

金山词霸在国内的软件市场上也有着一定的影响力,所以它的在线翻译还是有着不小的使用率。

优点:金山词霸的在线翻译优势主要体现在对词组、短句的翻译上,只需要将翻译的语句填写到翻译框中就可以翻译完成。在翻译速度和对中文词组的把握上比较有优势,比较适合国内用户使用。

缺点:翻译语言过于单一,因为金山词霸家族有金山快译软件,所以在线翻译中并不提供整段的翻译功能。如果我们想翻译大段文章,用金山在线翻译就很不方便了。

综合评定:作为国产的“土八路”,在中文词组的翻译上还是比那些“洋枪”好用,遗憾的是并不提供整段翻译以及整站翻译。

中国专家翻译网
地址:http://www.chinatranslation.net

中国专家翻译网专业的翻译网站,提供的即时翻译主要有英汉互译、汉译日、俄译汉和德译汉的服务。

优点:因为有众多翻译人才的支持,所以该网站的翻译功能还是不错的。翻译速度也是比较快速,而且翻译出的文章质量也是比较好。

缺点:翻译功能过于单一,只提供了文本翻译功能。

综合评定:该网站最大的优势就是它的有偿翻译功能,如果大家翻译比较重要的文章可以考虑一下这一付费功能。

CCSEE看中文
地址:http://www.xjx.cc/xinxiangmu/yrfy.htm

页面提供有日文网站的翻译功能,还包括中文网页翻译中文,英文网页翻译中文,中文网页繁体转换简体,英文文本/英文邮件翻译中文。

优点:提供全网站翻译以及短文翻译功能,速度比较快,准确率也比较高。而且界面清新整洁,比起其他网站看起来更舒服。

缺点:网站的语言翻译选择过于简单,翻译一般词汇比较准确,如果是比较专业的词汇就容易出问题。

综合评定:功能虽然比较少,但是效果并不逊色。当然,如果要追求更准确的翻译,这里的翻译错误还是显得比较多的。

文章来源:南方日报

世界杯真是充满变数!充满刺激啊!今天英格兰被葡萄牙点球淘汰,夺冠热门巴西0:1败给法国队被淘汰!

至此,世界杯四强全部诞生:德国、意大利、葡萄牙、法国