Skip to content

Instantly share code, notes, and snippets.

@nemanjan00
Created May 27, 2015 23:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nemanjan00/9a206a39b3ca1cb3a202 to your computer and use it in GitHub Desktop.
Save nemanjan00/9a206a39b3ca1cb3a202 to your computer and use it in GitHub Desktop.
<?php
if(isset($_FILES["file"]["tmp_name"]) && isset($_POST["key"]) && isset($_POST["sid"])){
if(preg_match("/^[a-z]+$/", $_POST["key"]) == 1 && strlen($_POST["key"]) >= 8){
if(is_numeric($_POST["sid"])){
$sid = $_POST["sid"];
}
else
{
$sid = rand(1111,9999);
}
function convert($str, $ky = ''){
if ($ky == '')
return $str;
$ky = str_replace(chr(32), '', $ky);
if (strlen($ky) < 8)
exit('key error');
$kl = strlen($ky) < 32 ? strlen($ky) : 32;
$k = array();
for ($i = 0; $i < $kl; $i++) {
$k[$i] = ord($ky{$i}) & 0x1F;
}
$j = 0;
for ($i = 0; $i < strlen($str); $i++) {
$e = ord($str{$i});
$str{$i} = $e & 0xE0 ? chr($e ^ $k[$j]) : chr($e);
$j++;
$j = $j == $kl ? 0 : $j;
}
return $str;
}
function generateRandomString($length = 10) {
$characters = 'abcdefghijklmnopqrstuvwxyz';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
$key = $_POST["key"];
$data = " ?> ".file_get_contents($_FILES["file"]["tmp_name"])." <?php ";
$login = "PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiI+DQoJPGhlYWQ+DQoJCTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4NCgkJPHRpdGxlPk4wMFByb3RlY3RvcjwvdGl0bGU+DQoJCTwhLS0gTGUgc3R5bGVzIC0tPg0KCQk8bGluayBocmVmPSJodHRwOi8vYm9vdHN3YXRjaC5jb20vY3lib3JnL2Jvb3RzdHJhcC5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPg0KCQkNCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkJCWJvZHkgew0KCQkJCXBhZGRpbmctdG9wOiA2MHB4Ow0KCQkJCXBhZGRpbmctYm90dG9tOiA0MHB4Ow0KCQkJfQ0KCQkJLnNpZGViYXItbmF2IHsNCgkJCQlwYWRkaW5nOiA5cHggMDsNCgkJCX0NCgkJICAgICAgLyogT3ZlcnJpZGUgc29tZSBkZWZhdWx0cyAqLw0KCQkgICAgICBib2R5IHsNCgkJCXBhZGRpbmctdG9wOiA0MHB4OyANCgkJICAgICAgfQ0KCQkgICAgICAuY29udGFpbmVyIHsNCgkJCXdpZHRoOiAzMDBweDsNCgkJICAgICAgfQ0KDQoJCSAgICAgIC8qIFRoZSB3aGl0ZSBiYWNrZ3JvdW5kIGNvbnRlbnQgd3JhcHBlciAqLw0KCQkgICAgICAuY29udGFpbmVyID4gLmNvbnRlbnQgew0KCQkJYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCgkJCXBhZGRpbmc6IDIwcHg7DQoJCQltYXJnaW46IDAgLTIwcHg7IA0KCQkJLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4IDEwcHggMTBweCAxMHB4Ow0KCQkJICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4IDEwcHggMTBweCAxMHB4Ow0KCQkJCWJvcmRlci1yYWRpdXM6IDEwcHggMTBweCAxMHB4IDEwcHg7DQoJCQktd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xNSk7DQoJCQkgICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xNSk7DQoJCQkJYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwwLDAsLjE1KTsNCgkJICAgICAgfQ0KDQoJCQkgIC5sb2dpbi1mb3JtIHsNCgkJCQltYXJnaW4tbGVmdDogNjVweDsNCgkJCSAgfQ0KCQkJICANCgkJCSAgLmxvZ2luLWZvcm0gaDIgew0KCQkJICBjb2xvcjojMDAwIWltcG9ydGFudDsNCgkJCSAgfQ0KCQ0KCQkJICBsZWdlbmQgew0KCQkJCW1hcmdpbi1yaWdodDogLTUwcHg7DQoJCQkJZm9udC13ZWlnaHQ6IGJvbGQ7DQoJCQkgIH0NCgkJPC9zdHlsZT4NCg0KCQk8IS0tIExlIEhUTUw1IHNoaW0sIGZvciBJRTYtOCBzdXBwb3J0IG9mIEhUTUw1IGVsZW1lbnRzIC0tPg0KCQk8IS0tW2lmIGx0IElFIDldPg0KCQkJPHNjcmlwdCBzcmM9Imh0dHA6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIj48L3NjcmlwdD4NCgkJPCFbZW5kaWZdLS0+DQoJPC9oZWFkPg0KCTxib2R5Pg0KCQk8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KCQkJPGRpdiBjbGFzcz0iY29udGVudCI+DQoJCQkJPGRpdiBjbGFzcz0icm93Ij4NCgkJCQkJPGRpdiBjbGFzcz0ibG9naW4tZm9ybSI+DQoJCQkJCQk8aDI+bjAwUHJvdGVjdG9yPC9oMj4NCgkJCQkJCTxmb3JtIG1ldGhvZD0iR0VUIj4NCgkJCQkJCQk8ZmllbGRzZXQ+DQoJCQkJCQkJCTxkaXYgY2xhc3M9ImNsZWFyZml4Ij4NCgkJCQkJCQkJCTxpbnB1dCBuYW1lPSJrZXkiIHR5cGU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iS2V5Ij4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxidXR0b24gY2xhc3M9ImJ0biBwcmltYXJ5IiB0eXBlPSJzdWJtaXQiPlVubG9jazwvYnV0dG9uPg0KCQkJCQkJCTwvZmllbGRzZXQ+DQoJCQkJCQk8L2Zvcm0+DQoJCQkJCTwvZGl2Pg0KCQkJCTwvZGl2Pg0KCQkJPC9kaXY+DQoJCTwvZGl2PiA8IS0tIC9jb250YWluZXIgLS0+DQoJPC9ib2R5Pg0KPC9odG1sPg==";
$stub = "ZXJyb3JfcmVwb3J0aW5nKDApOyBzZXNzaW9uX3N0YXJ0KCk7ICRsb2dpbiA9ICJ7bG9naW59IjsgJGRhdGEgID0gYmFzZTY0X2RlY29kZSgie2RhdGF9Iik7ICRrZXkgICA9ICJ7a2V5fSI7IGZ1bmN0aW9uIGNvbnZlcnQoJHN0ciwgJGt5ID0gJycpIHsgaWYgKCRreSA9PSAnJykgcmV0dXJuICRzdHI7ICRreSA9IHN0cl9yZXBsYWNlKGNocigzMiksICcnLCAka3kpOyBpZiAoc3RybGVuKCRreSkgPCA4KSBleGl0KCdrZXkgZXJyb3InKTsgJGtsID0gc3RybGVuKCRreSkgPCAzMiA/IHN0cmxlbigka3kpIDogMzI7ICRrICA9IGFycmF5KCk7IGZvciAoJGkgPSAwOyAkaSA8ICRrbDsgJGkrKykgeyAka1skaV0gPSBvcmQoJGt5eyRpfSkgJiAweDFGOyB9ICRqID0gMDsgZm9yICgkaSA9IDA7ICRpIDwgc3RybGVuKCRzdHIpOyAkaSsrKSB7ICRlICAgPSBvcmQoJHN0cnskaX0pOyAkc3RyeyRpfSA9ICRlICYgMHhFMCA/IGNocigkZSBeICRrWyRqXSkgOiBjaHIoJGUpOyAkaisrOyAkaiA9ICRqID09ICRrbCA/IDAgOiAkajsgfSByZXR1cm4gJHN0cjsgfSBpZiAoaXNzZXQoJF9TRVNTSU9OWyJrZXlfe3NpZH0iXSkpIHsgaWYgKG1kNSgkX1NFU1NJT05bImtleV97c2lkfSJdKSA9PSAka2V5KSB7IGV2YWwoY29udmVydCgkZGF0YSwgJF9TRVNTSU9OWyJrZXlfe3NpZH0iXSkpOyB9IGVsc2UgaWYgKGlzc2V0KCRfR0VUWyJrZXkiXSkpIHsgaWYgKG1kNSgkX0dFVFsia2V5Il0pID09ICRrZXkpIHsgJF9TRVNTSU9OWyJrZXlfe3NpZH0iXSA9ICRfR0VUWyJrZXkiXTsgZXZhbChjb252ZXJ0KCRkYXRhLCAkX0dFVFsia2V5Il0pKTsgfSBlbHNlIHsgZWNobyBiYXNlNjRfZGVjb2RlKCRsb2dpbik7IH0gfSBlbHNlIHsgZWNobyBiYXNlNjRfZGVjb2RlKCRsb2dpbik7IH0gfSBlbHNlIGlmIChpc3NldCgkX0dFVFsia2V5Il0pKSB7IGlmIChtZDUoJF9HRVRbImtleSJdKSA9PSAka2V5KSB7ICRfU0VTU0lPTlsia2V5X3tzaWR9Il0gPSAkX0dFVFsia2V5Il07IGV2YWwoY29udmVydCgkZGF0YSwgJF9HRVRbImtleSJdKSk7IH0gZWxzZSB7IGVjaG8gYmFzZTY0X2RlY29kZSgkbG9naW4pOyB9IH0gZWxzZSB7IGVjaG8gYmFzZTY0X2RlY29kZSgkbG9naW4pOyB9";
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=encrypted.php");
header("Content-Type: application/x-php");
header("Content-Transfer-Encoding: binary");
print("<?php eval(gzuncompress(base64_decode(\"".base64_encode(gzcompress(str_replace("{data}", base64_encode(convert($data, $key)), str_replace("{login}", $login, str_replace("{key}", md5($key), base64_decode($stub))))))."\"))); ?>");
}
else
{
header("Location: ?err=1");
}
}
else
{
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>N00Protector</title>
<!-- Le styles -->
<link href="http://bootswatch.com/cyborg/bootstrap.min.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<div class="content">
<div class="row">
<div class="post hero-unit">
<h2>PHP Encrypter</h2>
<?php if(isset($_GET["err"])){if($_GET["err"] == 1){?><span class="label label-important">Error: Key has to be 8+ a-z chars string</span><?php }} ?>
<form method="POST" enctype="multipart/form-data">
<fieldset>
<label>Key: </label>
<input name="key" type="text" value="" placeholder="Type key…"> <span class="badge badge-info">Key is a-z password with at least 8 chars.</span><br>
<label>File: </label>
<input id="lefile" type="file" name="file" style="display:none">
<div class="input-append">
<input id="photoCover" class="input-large" type="text">
<a class="btn" onclick="$('input[id=lefile]').click();">Browse</a>
</div>
<script type="text/javascript">
$('input[id=lefile]').change(function() {
$('#photoCover').val($(this).val());
});
</script>
<label>Script id: </label>
<input name="sid" type="text" value="<?=rand(1111,9999);?>" placeholder="Type id…"> <span class="badge badge-info">If you are crypting script with more than one file, use same number for all files.</span> <br>
<button type="submit" class="btn">Upload</button>
</fieldset>
</form>
</div>
</div>
</div>
</div> <!-- /container -->
</body>
</html><?php
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment