V A N L I G A S K Ö T S A M M A U N G D O M A R nummer 5, augusti 1998 Tillbaka igen, efter det 0nda Utgivningsuppehållet från Helvetet LÄS DETTA ZINE PÅTÄND, MED DINA BLODSBESUDLADE HÄNDER IVRIGT SMEKANDE DEN NYLIGEN STULNA PENTIUM II-DATORN!! Officiell epostadress till VSU-redaktionen: harnhammar@yahoo.com SLÄPP KEVIN MITNICK FRI! Innehållsförteckning -==================- (1) INTRO (2) VSU UPLOAD BOMB v1.0 (3) MINI-MIKRO-KÄRLEKSNOVELL (4) NYFIKEN PÅ: SVENSKA ZINES (5) AND NOW THE END IS NEAR, AND SO I FACE MY FINAL CURTAIN ------------------------------------------------------------------------------ Detta nummer av VSU består dels av den här textfilen, och dels av ett tillhörande program, "upldbomb.tgz", som ska vara 25593 bytes långt. Om du bara har fått textdelen har du inte fått hela VSU#5, beroende på att din kompis är lam. Skriv till oss på harnhammar@yahoo.com , så skickar vi hela VSU#5 till dig via epost. ------------------------------------------------------------------------------ INTRO -===- Nej! Vi har inte knarkat ihjäl oss ännu! Vi sjönk tillfälligt ner i Den Låga Utgivningstakten från Helvetet, som åtminstone delvis var besläktad med Den 0nda Skrivkrampen från Helvetet och Den 0nda Verkligheten Utanför Scenen Som Tar Massor Av Vår Tid från Helvetet. Men vi finns fortfarande och så. Vi har hört alla de rykten om oss, som har tisslats och tasslats fram och tillbaka i Stockholms undre värld. De går ut på att det är vi som ligger bakom precis alla de websidor som marknadsför olika svenska prostituerade, och som har uppmärksammats i Metro och andra "högkvalitativa" svenska media tidigare i år. Dessa rykten avböjer vi dock att kommentera. Vad gäller ryktet om att Bonniers ville köpa upp VSU för att låta oss producera vårt redaktionella material i samarbete med det kristna magasinet Petrus kan vi däremot bestämt dementera detta. Våra diskussioner med Bonniers gällde ju enbart att vår annonsavdelning skulle gå ihop med Petrus' dito. Tiden flyter vidare, och vi med den. Året är nu 1998 ($07CE), och det trygga svenska folkhemmet är så gott som totalt nedmonterat. Det bor en sockerbagare här uti staden. Han säljer barnporr mest hela dagen. Den tid som vi inte gav ut några uschla nummer av VSU gick också åt till att fundera över vad fan vi sysslar med egentligen. Detta kommer att resultera i att vi kommer att bli snäppet ambitiösare, här på VSU. Från detta femte nummer och framåt har vi tänkt slänga ut stora delar av det ironiska gnällandet på samhället och ha med mycket mer tekniska hackingartiklar och fler reportage från olika datorundergroundscener. I detta nummer är vi stolta över att kunna presentera er för programmet "VSU Upload Bomb" (Hackern, det här är Programmet. Programmet, det här är Hackern. Skaka nu hand och säg att det är trevligt att träffas), och vi har även ett reportage om den svenska zinesscen som vi själva är en del av. Vi måste också konstatera att vi verkligen ser framemot de riktigt allvarliga buggar, som kommer att lamslå hela det IT-beroende moderna samhället vid nyår år 2000! Samhället suger - därför är det bra att det går sönder! Vi har tänkt hjälpa till så mycket vi kan, genom att lägga in små subtila ändringar i COBOL-koden till alla administrativa program vi kan komma åt, så att saker pajar ännu värre den 1:a januari år 2000! Vi vill inte ha samhället i den form som det är nu! Det är inte bra nog! Back to nature, för fan! Rousseau!! Daisy Miller / Henry James! The Adventures of Huckleberry Finn / Mark Twain!!!! När vi ändå håller på att ändra det vinnande VSU-konceptet kan vi lika gärna genomföra ett par ändringar till. Alla nollor och små I:n istället för stora O och I i alla rubriker har åkt ut. De såg alldeles för warez d00dz-aktiga ut. Vi har också slängt ut det besinningslösa hoppande mellan massor av olika handles som vi har ägnat oss åt i VSU#3-4. All text i dessa två nummer är skriven av tre personer, som skrev under massor av olika handles. Detta blev jobbigt i längden, så i fortsättningen kommer vi att ha ett namn per person som är med och skriver. Vi har också skaffat oss en innehållsförteckning, och dessutom har vi bytt utseende på texternas rubriker (de som förut var omgivna av en ful låda av asterisker har numera en snyggare understrykningsrad under sig). Visste ni förresten att Kungen har en övernattningslägenhet i Stockholm, där han knullar massor med horor från Malmskillnadsgatan? (I Kristoffer Leandoers roman "Flipperspelaren" påstås det att detta faktum skulle vara det mest tabubelagda, något som ingen svensk tidningsredaktion skulle skriva om. "Flipperspelaren" är en mycket bra bok, förresten. Eftersom ni läser VSU är ni ju uppenbarligen intresserade av rebeller, och den romanen handlar mycket om just kollisionen mellan några rebeller och det svenska folkhemmet. Boken är tillägnad alla som har gått för långt, vilket ju också skapar vissa hypertextlänkar till VSU i våra hjärnor..) Ett litet avslöjande - följande personer har gjort de nummer av VSU som har kommit ut hittills: VSU#1: Ulf. VSU#2: Ulf. VSU#3: Ulf, Trazan. VSU#4: Ulf, KIDney. VSU#5: Ulf. Jag sträcker mig efter min DYCP-sourcedisk, och allt blir åter vågigt. // Ulf of VSU ------------------------------------------------------------------------------ VSU UPLOAD BOMB v1.0 -==================- Idag ska vi göra något helt nytt och helt crazy: vi ska bomba uppladdningsskript på websidor! INLEDNING För några versioner sedan införde de mest populära webläsarprogrammen en ny HTML-funktion: . Denna används för att ladda upp en fil från den dator man sitter och surfar på, till ett CGI- eller ASP-skript på servern som man surfar till. Dessa skript gör sedan något med filen som har laddats upp - exempelvis är det vanligt att den lagras i något undanskymt bibliotek, där webmastern senare kan titta på den och se om han/hon ska lägga upp den på sin websida. Vi har gått igenom flera av de mest populära CGI-arkiven på nätet, vars skript används på många servrar. Vi hittade inte något enda offentligt tillgängligt filuppladdningsskript, som hade något som helst skydd mot den lilla Denial of Service-attack som vi ska beskriva i den här artikeln. De som har kodat dessa filuppladdningsskript som vi har tittat närmare på verkar ha tänkt på fyra olika säkerhetsrelaterade problem: (1) filen som laddas upp måste ha ett filnamn som slutar på en viss extension (exempelvis .mp3 eller .sid) (2) filen som laddas upp får inte vara längre än ett visst antal bytes (3) filnamnet på filen som laddas upp måste befrias från sökvägar, så att ingen kan försöka ladda upp filen "../../index.html" eller något (4) det är noga med accessrättigheterna till katalogen som uppladdade filer hamnar i, så att inte en hacker kan ladda upp ett CGI- eller ASP-skript och sedan köra det på servern Dessa fyra punkter räcker till, om man förutsätter att filen kommer från en människa som använder en webläsare. Det kan man dock inte förutsätta - det går att göra s.k. webrobotar, som själva ger sig ut på nätet och surfar runt helt utan hjälp av någon browser. Vi på VSU har kodat en sådan webrobot, "VSU Upload Bomb v1.0", som kan surfa upprepade gånger till samma skript på en server och exempelvis ladda upp massor med filer med slumpmässig data. Denna attack kan dels leda till att webmastern blir irriterad när han/hon kommer till jobbet, och måste gå igenom 150 filer för att se om någon av dem är en riktig upload eller om alla bara är bomber. Men attacken kan även ställa till med allvarligare saker, speciellt på servrar som har någon form av quotasystem igång. Sådana system gör att det inte går att lagra mer än ett visst antal megabyte på varje användares konto. Om man uploadbombar ett sådant konto kan man fylla hela kontots quota. Då kan dels inte de legitima användarna ladda upp några filer, och dels kan andra skript på servern sluta att fungera, om dessa andra skript vill lagra information i någon loggfil eller något annat. Man kan få alla serverns skript att sluta att fungera, vilket är allvarligt om man exempelvis är en butik på nätet, så att nästan alla sidor som finns på ens sida består av olika skript! INSTALLATION "VSU Upload Bomb v1.0" är ett Perl 5-skript för UNIX-system. Så här installerar du "VSU Upload Bomb v1.0": när vi skickade ut detta zine skickade vi även med programmet som ett .tar.gz-arkiv. Packa upp det (kan du inte det är du djävligt lam, och bör dunka huvudet hårt i väggen hundratals gånger, så att vi slipper dig). Editera sedan första raden i filen "vsu_upload_bomb.pl", så att den pekar på Perl 5-tolken på just ditt UNIX-system. TEKNISKA DATA: VÅRT PROGRAMS FINESSER - HTTP/0.9, HTTP/1.0 och HTTP/1.1 (med support för Host och Connection) - GET och POST - två Content-types för POST stöds: både "multipart/form-data" och "application/x-www-form-urlencoded" - mottagning av HTML-dokument som är "chunked data" - support för mottagning av dubbla headers från servern (100 Continue) - filuppladdning av slumpmässig data - upprepade anrop av samma server med några sekunders paus mellan anropen - man kan själv välja vad som ska stå på "Referer:"-fältet - man kan mata in variabler - man kan ha en variabelbomb (en variabel som innehåller mängder med slumpmässig data, som ändras för varje anrop) - man kan välja hur lång variabelbomben ska vara - man kan välja mellan vilka gränser filbombens storlek ska variera - man kan välja vad filbombens filnamn ska sluta på för extension - man kan mata in en fejkad sökväg som det ska se ut som att den uppladdade filen fanns i på systemet som laddade upp filen - Eftersom vi inte kan så mycket om kodning av sockets och TCP/IP än, så använder vi Eric Arnolds bibliotek "comm.pl" bara för att starta en telnetuppkoppling mot en viss dator och en viss port. Alla andra tekniska detaljer utom telnetuppkopplingen sköter vi däremot själva i vår egen kod. (Att använda färdiga bibliotek är ju inte så jättetufft, så vi har tänkt att lära oss sockets senare i höst, så att vi kan slänga ut "comm.pl" och ge ut en senare version av vårt program där även uppkopplingen sköts av kod som vi har skrivit själva.) KÖRNING Leta upp ett skript du vill bomba. Ofta finns det på en server ett vanligt HTML-dokument som man surfar till för att fylla i ett formulär med data och där man väljer vilken fil som ska laddas upp. Detta HTML-dokument kommer vi nedan att kalla "dokument A" (pedagogiskt värre!?). Dokument A anropar sedan CGI- eller ASP-skriptet som sköter uppladdningen. Börja med att anteckna alla variabelnamn som förekommer i dokument A. Variabelnamnen är den del av -taggen som heter name=. (Om du inte kan något om HTML-formulär får du lära dig det någon annanstans. Den här texten skulle bli oerhört lång, om vi skulle förklara ALLT på en enkel och pedagogisk nivå, men det finns en massa siter på nätet där man kan lära sig sådant.) Du behöver också veta vad dessa variabelnamn är till för, d.v.s. vilket innehåll du ska ge dem. Observera att det är skillnad på STORA och små bokstäver i dessa variabelnamn. Anteckna även om
-taggen använder sig av metoden "GET" eller "POST". Vänta sedan tills det är utanför kontorstid, både i den tidszon som servern som du vill angripa ligger i, och i den tidszon som ditt UNIX-system ligger i. Annars kan du ju bli avbruten mitt i din körning om någon sysadmin upptäcker dig, och det är inte så kul. Starta sedan vårt program med UNIX-kommandot "./vsu_upload_bomb.pl". Den första frågan som programmet ställer är "Hur många gånger ska servern anropas?". Du svarar på det genom att skriva in ett tal. Nästa fråga är "Serverns namn:". Du skriver in ett namn på en dator på nätet. OBS! Det ska inte stå några snedstreck eller "http://" här, bara ett namn på en dator, som "www.livetsord.se" eller något. Nästa fråga är "Sökvägen till skriptet på servern:". Här skriver du in en sökväg, som ska börja med snedstreck, exempelvis "/en/massa/dumma/kataloger/ upload.asp". Nästa fråga är "Metod (GET eller POST):". Här skriver du in vilken metod som skriptet förväntar sig att ta emot data genom (det ser du i -taggen i HTML-koden för dokument A). Det räcker med att skriva en bokstav (G eller P), och det spelar ingen roll om du svarar med stora eller små bokstäver. Nästa fråga är "Portnummer (80):". Här skriver du in vilken port som webservern svarar på. Det är oftast 80, så om du bara trycker RETURN här kommer programmet att tolka det som att du vill använda port 80. Nästa fråga är "HTTP-version (1.1):". Här skriver du in vilken version av HTTP-kommunikation som du vill använda: "0.9", "1.0" eller "1.1". "1.1" är vanligast nuförtiden, så om du bara trycker RETURN här kommer programmet att tolka det som att du vill använda "1.1". Nästa fråga är "Refererande websida:". Här skriver du antingen inte in något (bara trycker RETURN) - då blir det ingen refererande websida. Annars kan du skriva in en fullständig URL till en sida på nätet (exempelvis "http://www.telia.com/kuken/i/munnen/trista/villaagare/index.html") - då kommer servern att uppfatta det som om det var den sidan som innehöll HTML-dokumentet där du valde en fil för uppladdning och sedan tryckte på Submit-knappen. Jag tror inte det finns några skript som är så petiga än så länge att de undersöker detta fält så noga, men bara för att vara säker kan det ju vara lämpligt att skriva in URL:en till dokument A här. Nästa fråga är "Vill du bomba ett filuppladdningsskript (j/n)?". Du svarar på denna fråga. Det räcker med att skriva en bokstav i ditt svar, och stora och små bokstäver spelar ingen roll. Om du svarade att du ville bomba ett filuppladdningsskript kommer det fem följdfrågor. Den första följdfrågan är "Vilket namn har filen på formuläret?". Här skriver du in vilken name= som finns i dokument A i - taggen. Den andra följdfrågan är "Filernas minilängd (kB):". Här anger du ett tal, som motsvarar den minimala längden i kB som de filer som senare kommer att föras över kommer att ha. Om du skriver 1024 kommer alla filer alltså att vara minst 1 megabyte stora. Tänk på att en del skript vägrar att ta emot för stora filer, så då får man föra över många något mindre filer istället. Den tredje följdfrågan är "Filernas maximala slumpaddition i storlek (kB):". Filernas längd kommer slumpmässigt att variera mellan den minilängd som du matade in nyss, och denna minilängd plus ett tak för slumpfunktionen. Här matar du in det taket. Om du skriver 0 här blir alltså alla filer exakt så långa som den minilängd som du skrev in förut. Om du skriver 10 på minilängden och 20 på den här frågan kommer alla filer som genereras att vara mellan 10 kB och 30 kB långa (eller egentligen 29 kB p.g.a. hur slumpfunktionen i Perl fungerar). Den fjärde följdfrågan är "Vad ska filnamnen sluta på?". Här matar du in en lämplig filextension (typ ".mp3" eller ".sid" eller något som passar den site som du ska ladda upp på). Vissa skript vägrar att ta emot filer som har fel filextension. Den femte och sista följdfrågan är "En fejkad sökväg som det ska se ut som att du laddar upp filerna från:". Av någon dum anledning skickar Net$cape med hela sökvägen till den fil som man laddar upp, vilket ju egentligen är ett intrång i den personliga integriteten. Iallafall, här kan du mata in en fejkad sådan sökväg. Om du skriver "/home/ulf/" kommer det för skriptet att se ut som att filen du laddade upp låg i katalogen "/home/ulf/" i ditt system. Observera att denna sökväg måste sluta på "/" eller något annat avskiljande tecken. Det är ingen bra ide att bara skriva "/home/ulf". Nu är följdfrågorna för filuppladdning slut. Nästa prompt är "Variabel #1. Ange variabelnamn, eller avsluta variabelinmatningen med en punkt själv på en rad. Variabelnamn:". Då gör vi det. Om vi alltså inte ska ha några variabler alls skriver du en punkt ("."). Annars skriver du in ett variabelnamn, från de som finns i dokument A (typ "author" eller något). Om du skrev ett variabelnamn, snarare än en punkt, blir nästa prompt "Ange variabelns innehåll. Avsluta med en punkt som är själv på en rad. Variabelvärde:". Då gör vi det (exempelvis "VSU"). Då kommer variabeln "author" att få värdet "VSU". Observera att man kan trycka RETURN mitt i, och därigenom mata in variabelvärden som är flera rader långa - detta för att stödja en HTML-tag som heter