Криптиране на PHP файл

Статус
Not open for further replies.

DirectX

Registered
направих си системката която мъчих толкова време и сега искам да си криптирам файловете, за не може кодът да се копира от тях.
Какво предлагате ? :D
 
Писах ти лс.
А иначе декриптиране винаги има тъй като на zend се декриптира чрез програма, а за phplockit съм си направил автоматичен декриптер чрез форма за качване на файл.
А вчера декриптирах и на obfusc.com защото ми беше интересно как криптират.
Но въпросът е че не на всеки ще му се занимава да ти декриптира сайта и то ако е криптиран няколко пъти.
Аз ще ти ги криптирам с един мой критптер тъй като в сравнение с другите е по-сигурен защото съм взел от phplockit, zend и други няколко по най-доброто качество и съм създал друга функция за криптиране а не просто base64_decode + gzdeflate ;)

И както казах, пак може да се декриптира тъй като файлът чете сам от себе си , декриптира кода и го изпълнява.
За да може да се изпълни кода то задължително трябва да може да го декриптира сървъра и да върне резултатът на браузъра..
 
За phplockit и аз съм си написал декпритер, само че.. при мен не качвам файла, а просто му посочвам пътя т.е.

$decrypt = "decrypt.php";

Относно zend, викаш си го декриптирал на ръка?

Виждал съм немалко хахорски скриптове за обфускиране на кода. Някой понякога имат добри познания в областта на криптографията. Имам предвид, могат да различават отделни хешове с какъв алгоритъм са приготвени, познават различни криптографски и хеш алгоритми.. знаят к'во е salt, rainbow, обаче 99% от тях си пишат абсолютно малоумно PHP code.

Виждал съм доста кодове криптирани с Base64. Това е много глупаво. Base64 е измислен за да се репрезентира binary дата в ASCII вид. "Декриптирането" е тривиално.
 
Доста играчка както и при obfusc.com криптера тъй като там нещата са доста по-сложни от phplockit но да , и довечера ще видя един мой приятел дали още го пази тъй като той си изкарва пари по този начин и има автоматичен декриптер на zend.. аз съм му помагал за изработване на декриптери, а после взе че ми стана интересно и реших и аз да си направя криптер и така някъде към 22 часът ще седна на pc и ще видя какво пази като цяло и ще ти драсна едно ЛС.

EDIT: до @Ticketa
 
На фона на цялата простотия, комбинация от нещата по-горе, които съм изброил е доказано безсмислено, 'щото за 10 минути можеш да напердашиш няколко реда скрипт на PHP, който да го "декриптира".

Забелязал съм и че доста PHP Shell-а използват: eval(), gzinflate() .. и base64... но с каква цел? Безсмислено е.

PHP:
<?php
$get_code = gzinflate(base64_decode('source for decrypt'));
$get_code2 = $get_code;
while ($get_code != '') {
	$search = explode("base64_decode('", $get_code);
	$search_end = explode("')))", $search[1]);
	$get_code = $search_end[0];
	if (strpos($get_code2, "rot13") > 0) {
		$get_code = gzinflate(str_rot13(base64_decode($get_code)));
	} else {
		$get_code = gzinflate(base64_decode($get_code));
	}
	$get_final = htmlentities($get_code);
	echo "<pre style='border: 1px solid #000'>{$get_final}</pre><br /><br />";
	$get_code2 = $get_code;
}
$get_final = htmlentities($get_code2);
echo "<pre style='border: 1px solid #000'>{$get_final}</pre><br /><br />";
?>

Аа.. за малко да забравя. rot13 криптирането също е тъпо - защо? Еми ако се разгледа base64 кодирането ще се види , че е много подобно на него. Както казах по-горе това е тривиално за "декриптиране". Чел съм доста статии(материали) по уеб сайтовете и съм се убедил, че не греша.

А иначе декриптиране винаги има тъй

Много точно си го казал.
 
Да точно.
Дори аз където съм си играл самият код да го минавам през dechex, base_convert и какво ли още не , след това съм криптирал тази декодираша функция с base64_encode+gzdeflate и то няколко пъти и накрая съм криптирал оригиналният php код с тази функция, то пак си има декриптиране Е сега ако не трябваше да се изпълнява кодът щеше да е съвсем друга работата и тогава можеше да се направи доста изродско нещо но уви не става да се хешира защото трябва да има обратна функция както криптиране/декриптиране , а дехеширане не съществува както знаем добре..
Но все пак си е вид "защита на кода" тъй като "новаците" така да ги наречем (в случаят те са хора които нямат достатъчни познания за да си напишат система и биха тръгнали да крадат неговата) , те няма да разбират и методиката на криптирането и на декриптирането особено ако това цялото е изпълнено неколкократно..
 
А някой може ли да обясни как се криптира като за новобранец, и какви сайтове могат да се криптират...
 
Най-простото обаче е едно XOR криптиране. Не е устойчиво на крипт. атаки т.е. тези, които гледат/четат/ честотата на определени символи. Тогава можем да имплементираме RC4 например, доста по-сигурен вариант и същевременно не много сложен за реализация. Има и по-параноични решения, но ме съмнява че ако едно хакерче иска да си скрие кода от други хакерчета, дали ще му трябва нещо по-сигурно от RC4. Темата е дълга, въпреки че може да се защитиш от начинаещи, не знаеш дали някой ден може някой да им предостави "декриптиран" скрипта, който им е трябвало.

Все пак са само предположения 1 на 99%. Лека вечер, ще видя най-късно утре (може би) дали си пратил нещо в ЛС-то.

РЕ: имам някъде един XOR криптер клас, който писах преди време. Ако някой иска ще му го пратя.
 
Всичко което ти е нужно..
html, php .. css кодът може ако е в същият файл чрез <style></style> , js кодът пак ако е в същият файл чрез <script.....
Или дори ако е в отделен файл примерно style.php и js.php в чието начало си задал content type: text/css и text/javascript и в файлът в който ги използваш си им задал пътя до .php вместо .css и .js тогава също ще можеш да ги използваш.

Ето един онлайн obfuscator
http://www.mobilefish.com/services/php_obfuscator/php_obfuscator.php
(не че правя реклама но просто @GOTI поиска да му кажем как, надявам се да не се сметне за реклама)

Но както казахме най-бързият вариант за декриптиране на кодът по този начин е като кодът който ти се генерира (подобен на този):

<?php
eval(gzinflate(base64_decode('S03OyFdQKkktLlGyBgA=')));
?>

Е просто да заменим eval с echo htmlspecialchars и тогава ще ни върне оригиналният код.

Т.е. ето така:

<?php
echo htmlspecialchars(gzinflate(base64_decode('S03OyFdQKkktLlGyBgA=')));
?>

Е да можеш да го криптираш неколкократно върнатият резултат но това само ще забави декриптирането.
Ако му се занимава на някой и знае как то ще го декриптира както и да е криптирано...

Няма смисъл да повтаряме едно и също защото темата се изчерпа.. ;)
 
Тази тема и на мен ще ми е много полезна, тъи като доста се бъхтя за сайтчето ми и предполагам че тъи като ще е конкуренция все ще се намери кой да го свали...
Но по нататък и аз ще ви поразпитам още малко по тази тема.
Лека вечер :)
 
Спрете да си давате истинските данни за базата данни тука и няма да ви свалят сайта. Защо в никой друг форум не виждам теми от рода "свалиха ми сайта". Еми хората просто не дават имена на таблици и прочие. Тука като тръгнете да давате всичко и така улеснявате "сваляча", че няма накъде.

Слагайте prefix на имената на таблиците, а тука като питате за нещо относно SQL поствайте table1, table2 и т.н.
 
TryMe каза:
Спрете да си давате истинските данни за базата данни тука и няма да ви свалят сайта. Защо в никой друг форум не виждам теми от рода "свалиха ми сайта". Еми хората просто не дават имена на таблици и прочие. Тука като тръгнете да давате всичко и така улеснявате "сваляча", че няма накъде.

Слагайте prefix на имената на таблиците, а тука като питате за нещо относно SQL поствайте table1, table2 и т.н.

Ако визираш мен, никога не съм давал такава информация :)
Но просто ми писна от пишмян хакерчета... в 90% от слуачайте дори не си давам кода , давам някакъв примерен код :)
 
TryMe, говориш глупости младеж. Всеки поне леко запознат с тази тематика - свалянето на сайтове, знае че без ти да си му казал името на таблицата, може да се открие(прочете). Достатъчни са малки умения и добро боравене със заявките. Да не говорим, че вече е пълно с програми и се навъдиха хиляди хахорчета.

Дори да ползваш mod_security отново си уязвим (до някаква степен) при неправилно написан скрипт. Например, преди време на уеб сървъра ми инсталирах Mod_security, нарочно си написах бъгливи скриптове, позволяващи SQLi, RFI и LFI. Целта ми беше да видя дали, ще мога да се възползвам от дупките и доколко mod_security може да предотврати такива атаки. Идеята на mod_security, не е нещо толкова уникално - не са открили топлата вода. Имаме rulesets съдържащи регулярни изрази, които хващат различни типове атаки. Има подобно нещо в GreenSQL с изключение на това, че там се анализират заявките. Уникалното в случая, че е направено като Apache modules.

Първото, което тествах беше SQLi. Мамка му! Все още има голям брой уязвими уеб приложения .. Въпреки, че някой ден всичко ще е минало и тези уязвимости ще бъдат рядкост.

Примерен, уязвим код. Бъгът е след WHERE клаузата на заявката, нямаме санитизиране на входни данни.

$query = mysql_query("SELECT column, column2 FROM table WHERE id=$_GET['id'];");
while ($row = mysql_fetch_array($query)) {
echo "$row[0] , $row[1]";
}

с проста SQL структура;
CREATE TABLE `table` (
`id` int(11) default NULL,
`column` varchar(10) default NULL,
`column2` varchar(10) default NULL
)

Всеки втори би използвал стария познат трик ?id=1 OR 1=1 - тук mod_security го хвана.. Но ако имаме: ?id=1 OR 1!=2 не го хваща. Извода както казах по-горе е, че ако имаме написан бъгав код скрипт, mod_security няма да ни предпази от листване на колоните в таблицата. А, ако имаме лични данни? К'во правим?

SQL операторите като INSER, SELECT, UPDATE ги хваща и блокира. Всеки би опитал да открие броя на полетата в реулзтата с ORDER BY 10-- и т.н. И това минава. В крайна сметка отново можем да "прескочим" Mod_security и бихме могли да се сдобием с имената на полетата от $query, ако използваме procedure analyse() т.е. ?id=1 procedure analyse()

Ще върне резултат:
test.table.column
test.table.column2

Ако attack vector-а е след WHERE клаузата, няма да има успех хахора. Обаче.. ако имаме join-ване на таблици, нещата стоят по друг начин.

Mod_security се справя добре спрямо SQLi атаки, въпреки малките пропуски. При другите анализи mod_security се дъни леко т.е. LFI, RFI. Рядкост е в наши дни да намериш RFI уязвимост, по-скоро е приложението да има само LFI уязвимост. Няма как да хване CSRF атаките, тъй като те са съвсем легитимни заявки. Но при правилно написан скрипт те могат да бъдат блокирани.

В крайна сметка изключително съм доволен от mod_security. Хваща повечето атаки, въпреки че ако някой идиот като мен тръгне да си играе с него, може да открие и още повече пропуски. Дори по забавното е, че ако хахор започне да търси топлата вода, може вече да бъде открита. Тоест искам да кажа, едно примерно търсене - bypass modsecurity - в някой хахорски форум , може да изкара доста резултати.

Дързайте!
 
Това , че някой си дава таблиците тук не значи , че ако не ги даде таблиците не могат да се разберат ;)

tables
group_concat(table_name) from information_schema.tables where table_schema=database()--

columns
group_concat(column_name) from information_schema.columns where table_schema=database()--

E да при MySQL 4 не работи , но пак има начини, винаги има начини стига да има SQLi.

phpMyAdmin -> SQL
SELECT * FROM `TABLES` WHERE `TABLE_SCHEMA`='база данни'
;)


Но нека тези неща дискутираме на друго място тъй като този форум е на тематика програмиране а не "хахорство" :twisted:

@Ticketa каза много добре как стоят нещата.

Най-добре е @admin да заключи темата, защото колкото и да не ми се иска да спамя не мога да замълча когато някой пише пълните глупости ;) :lol:
 
Еми нека аз си говоря пълните глупости, пък форума да се пълни с теми "еди си кой ми хакна сайта". Еми ще хаква, всеки втори дава пълна информация за базата си данни.
И не казвам, че не могат да се научат, но защо трябва да улесняваш хакера?
Ако в този форум пуснат 20 теми, в друг ще има една.
Другото, което е, всеки дава някаква защита, хоп още един бонус.
Така че, нека аз да си говоря глупостите.

А този мод не знам защо въобще го споменахте, но както и да е ;)

Спирам спама :)
 
Ами като не ти харесва , че тук има 20 теми за хакнати сайтове (които аз не виждам) , защо не отидеш там където форумът има 1 тема ?
Напоследък забелязвам че само недоволстваш за каквото и да става на въпрос и си много заядлив. И то не го забелязвам само аз а и други потребители го забелязват.

Кодът ако ти е написан като хората ако искаш си прати структурата на база данни на тъй наречения "хакера" пък нека да видим как ще ти хакне сайта ;)

Спирам и аз да пиша в темата.
 
Че къде недоволствам? Нали е форум, имам право на мнение. Мен не ме интересува, че им хакват сайтовете, просто казвам че подходът е грешен.
И къде няма теми? Нима напразно всеки почна да обръща по-сериозно внимание от към защита.
А относно другите форуми - не ми пречи да следя няколко.

Между другото прати ми на лично темите последно време, в които недоволствам.

Извинявам се за полу-офтопика.
 
Статус
Not open for further replies.

Горе