Jump to content
yoyois

Web Honeypot - Automatic sterilizer

Recommended Posts

Posted

Am facut un script php care ar trebui sa securizeze automat toti parametrii de intrare(GET, POST, COOKIE) Oricare ai fi ei (nume sau tip).

Aplicatia functioneaza si ca honeypot, identificand vectorii, si stocandu-i impreuna cu ip-ul, useragent-ul si referral-ul utilizatorului.

Teoretic, aplicatia ai putea combate orice atac XSS, SQLi si ar combate mare parte din atacurile LFI.

La identificarea unui keyword: union, select, information_schema, javascript, aplicatia nu sterge automat cuvantul, ci il transforma in entitati.

Aplicatia nu raspunde atacurilor, ci doar le inregistreaza, actionand ca un honeypot.

Cred eu ca: Este de ajutor dezvoltatorilor care sunt dezorganizati sau care se tem ca unele variabile pot fi uitate sa fie trecute prin filtru.

Aplicatia este expiremntala (inca). Am lucrat doar 2 ore la ea.

Insa codul sursa va fi publicat in scurt timp, premintand schimbarea desig-ului, functionalitatii, si a keywordurilor.

Practic: Have fun with it! Develop and let us know your improved versions.

pana acum am urcat scriptul pe un site:

XSS: parametru id http://massstore.site50.net/index.php?id=1

SQLi: parametru id(tip string) http://massstore.site50.net/page.php?id=2

XSS Array: http://massstore.site50.net/file.php?id=1&caca=3&us=pune%20cati%20parametrii%20vrei,%20toti%20vor%20fi%20filtrati%20si%20afisati

http://massstore.site50.net/file.php?test=1&nui=este

Admin: LogIn

Parola: YWRtaW4lM0FhZG1pbg==

Am zis ca site-ul e expiremtal(si in lucru). Daca aveti sugestii nu ezitati.

Voi publica in scurt timp sursa. Daca doriti sa o dezvoltati de acum: PM si sa trimit si voua codul.

Nu a fost copiat niciun element tehnic din WAFAPA!

EDIT: Banuiesc ca veti gasi ceva gauri de securitate. NU se pun cu adevarat decat daca se pot extrage informatii sensibile. and 1=1 (stiu deja ca 1=1)

Posted (edited)

Care este diferenta dintre WAF-ul tau si un simplu foreach?


foreach($_GET as $k => $v){
$_GET[$k] = @htmlspecialchars($_GET[$k], ENT_QUOTES);
}
foreach($_POST as $k => $v){
$_POST[$k] = @htmlspecialchars($_POST[$k], ENT_QUOTES);
}
foreach($_COOKIE as $k => $v){
$_COOKIE[$k] = @htmlspecialchars($_COOKIE[$k], ENT_QUOTES);
}

FPD => =pune%20cati%20parametrii%20vrei,%20toti%20vor%20fi%20filtrati%20si%20afisati%3C%3E%3C%3E%3C%3E"]http://massstore.site50.net/file.php?id=1&caca=3&us[]=pune%20cati%20parametrii%20vrei,%20toti%20vor%20fi%20filtrati%20si%20afisati%3C%3E%3C%3E%3C%3E

Edited by eusimplu
Posted
Care este diferenta dintre WAF-ul tau si un simplu foreach?


foreach($_GET as $k => $v){
$_GET[$k] = htmlspecialchars($_GET[$k], ENT_QUOTES);
}
foreach($_POST as $k => $v){
$_POST[$k] = htmlspecialchars($_POST[$k], ENT_QUOTES);
}
foreach($_COOKIE as $k => $v){
$_COOKIE[$k] = htmlspecialchars($_COOKIE[$k], ENT_QUOTES);
}

Partea de administrare.

Sistemul e proiectat inspre a identifica, retine si bloca vulnerabilitatile.

Da, are la baza un for each.

Yeah. Stiu FPD. Nu sunt prea multe metode sa o opresti. Un simplu FPD tu te poate ajuta sa vatamezi site-ul ...

Posted

Nu este aplicabil in real life. Detectarea trebuie facuta pattern-based, plus ca cel mai probabil va strica functionalitatea aplicatiei, daca te gandesti sa il "distribui" ca un add-on.

Posted (edited)
La SQLi este WAF-ul sau doar ai folosit "operatorul" (int)?

http://massstore.site50.net/page.php?id=22

http://massstore.site50.net/page.php?id=2a2

:-??

Nu e injectie.

Acolo se selecteaza id-ul din baza de date. Poate fi id=1 sau id=2.

Probabil la 2a2 se face conversia, in baza de date id fiind tip INT.

Come on, Veniti cu ceva mai interesant ...

@qbert

Chestia e ca se poate aplica la un site mic, cu: id, article, page, 2-3 cookie-uri.

La aplicatii serioase s-ar cam bate in cap cu unele functii.

Dar de asta e aici, sa fie dezvoltat, iti poti selecta, implementa propriile functii, propriile keywords, pattern, etc.

PS: O sa-ik dezvolt in scurt timp un sistem de pattern search mai dezvoltat.

Edited by yoyois
Posted

Varianta asta e si mai buna :))


foreach($_GET as $k => $v){
$_GET[htmlspecialchars($k,ENT_QUOTES)] = htmlspecialchars($_GET[$k], ENT_QUOTES);
}
foreach($_POST as $k => $v){
$_POST[htmlspecialchars($k,ENT_QUOTES)] = htmlspecialchars($_POST[$k], ENT_QUOTES);
}
foreach($_COOKIE as $k => $v){
$_COOKIE[htmlspecialchars($k,ENT_QUOTES)] = htmlspecialchars($_COOKIE[$k], ENT_QUOTES);
}

Cine v-a spus ca WAF-urile pattern based sunt bune? De aceea toate cele existente pana acum au metode de bypassing?

Posted

Reckon, tu taci ma:)) ca aveai probleme mai mari si mai multe la al tau si acum vii aici cu " Nu stiam ca orDINAR si andREI fac parte din sintaxe SQL:"...

ON: In general nu am o parere prea buna despre WAF-uri, prefer sa securizez manual.Ideea acestui waf este buna, iar dupa parerea mea este mai bun decat a lui Reckon.

Sunt curios daca va fi gratuit(dupa ce este gata).

Posted

Este.Detecteaza singur parametrii care trebuie sa-i securizeze, nu trebuie sa-i bagi tu manual ceea ce-l face cu mult peste a tau.faptul ca nu diferentiaza cuvintele, nu e o problema, se poate rezolva rapid :) + ca e la inceput proiectul...

Posted (edited)
Folositi-va de PHP: strtolower - Manual ca sa scapati cu mai putine batai de cap.

E folosit. Sirul e filtrat case insensitive.

Stiu ca sunt ceva probleme la diferentiereea or, and, if, union, etc.

Totusi ca filtru incearca: mor (si vezi ca nu e luat ca injectie).

mai lucrez putin la un model ceva mai complex si customizabil, sa-ti poti introduce propriile keyword-uri in filtru prin panou.

Si da SilenTx0. PProiectul va ramane free, si open-source. Ca sa-si poata customiza fiecare versiunea sa.

Acest firewall este asemanator cu primul firewall care l-am postat eu la Market, deci se poate imbunatati, dar atata timp cat el nu diferentia cuvintele de sintaxe, nu ai cum sa spui ca este mai bun ca WAFAPA.

LE: Rezolvat problema cu orGANIZARE. NU se inregistreaza decat daca este cuvant de sine statator sau daca in fata sa este o cifra: ex: /*!50000union*/

Edited by yoyois

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...