Onko tämä SQL Injection -hyökkäys vai onko se jonkinlainen vika?

Petar 09/29/2017. 3 answers, 12.202 views
sql-injection postgresql

Tarkastelin joitain tietokannan tietoja, kun törmäsin joukko outoja user_id merkintöjä:

user_id
-1080) ORDER BY 1#
-1149 UNION ALL SELECT 79,79,79,79,79,79,79,79,79#
-1359' UNION ALL SELECT 79,79,79,79,79,79,79,79,79,79-- JwSh
-1409' ORDER BY 2678#
-1480' UNION ALL SELECT 79,79,79#
-1675 UNION ALL SELECT 79,79,79#
-1760 UNION ALL SELECT 79,79,79,79,79,79,79-- znFh
-1817 UNION ALL SELECT 79,79,79,79,79,79#
-1841 UNION ALL SELECT 79,79,79,79,79,79,79,79,79-- WiHF
-2265) UNION ALL SELECT 79,79,79,79,79,79#
-2365 UNION ALL SELECT 79,79,79,79,79,79,79#
-2387%' UNION ALL SELECT 79,79,79,79,79-- PHug
-2535') UNION ALL SELECT 79,79,79,79,79,79#
-2670%' ORDER BY 1#
-2847 ORDER BY 2974-- vCjk
-2922%' UNION ALL SELECT 79,79,79-- PgNW
-3097%' UNION ALL SELECT 79,79,79,79,79,79,79-- vJzG
-3675 UNION ALL SELECT 79,79,79# 

Ei näytä siltä, ​​että jotain haitallista on yritetty, joten osa minusta ajattelee, että tämä olisi saattanut aiheuttaa jonkinlaisen bugin, mutta sitten taas on melko epäilyttävää nähdä SQL-tietueita.

Mitä se voisi yrittää tehdä?

EDIT:

Kiitos kaikista vastauksista. Tulee ehdottomasti tarkastelemaan tätä. Seuraavassa on muutamia esimerkkejä, jotka löysin, mikä saattaa olla mielenkiintoista:

">JSON #36*
">JSON #98*
(SELECT CONCAT(0x717a627071,(SELECT (ELT(2849=2849,1))),0x716b627871)) 

Kannatan käyttäjän @ Matthewin ehdotusta, että tämä on joku, joka suorittaa sqlmap-työkalun tai jotain siihen liittyvää.

5 Comments
9 hd. 09/29/2017
Määritelmän mukaan se on SQL-injektio. Käyttäjä_id, oletan, pitää olla kokonaisluku, mutta ei. Jotain on pistetty joitain tietoja kyselyyn, joka ei saisi olla siellä, koska se on merkkijono eikä nyt kokonaisluku.
12 Matthew 09/29/2017
Älä usko, että tämä on kelvollinen oletus - on yleistä, että käyttäjä_id-sarakkeissa on GUID-tunnisteita tai jopa mitä ihmiset tavallisesti olettavat käyttäjätunnuksiksi. Ei ole tarpeeksi asiayhteyttä varmasti täällä.
13 jpmc26 09/29/2017
Jos sen pitäisi olla GUID, miksi tallentat ne merkkijonoksi? PostgreSQL: llä on oma UUID-tyyppi . Lisäksi miksi sovelluksesi ei hylkää mitään tunnetussa GUID / UUID-muodossa? Näyttää siltä, ​​että vahvistuskoodissa on ainakin virheitä, jotka hyväksyvät saapuvat tiedot.
6 gnasher729 09/30/2017
Se on attempt suorittaa SQL-injektio. Sinulla on verkkosivusto, jossa voin antaa käyttäjätunnuksen ja salasanan, ja joku syöttää nämä outoja käyttäjätunnuksia yrittäen suorittaa SQL-injektio. Ilmeisesti sivustosi ei ole haavoittuva, joten se kirjasi nämä outoja käyttäjätunnuksia oikeiksi käyttäjätunnuksiksi. Mikä on hakemuksesi näkökulmasta aivan hieno. Jos olen rekisteröitynyt käyttäjätunnuksella "-1080) ORDER BY 1 #", tämä toimii hyvin sivustossasi.
2 Steve Bennett 10/02/2017
Mitä ideoita mitä satunnaiset kirjaimet kommentteina (esim. -- vJzG ) koskevat?

3 Answers


Matthew 09/29/2017.

Tutustu "Union Injection" SQL-hyökkäyksiin, joita löytyy täältä .

Pohjimmiltaan se yrittää eri tavoin tunnistaa sarakkeiden määrän kyselyssä etsimällä jotain, joka on onnistunut. Rivejä koskeva order by yrittää havaita eroja tiettyjen sarakkeiden tilaaman datan ja virheen, jota yrittää tilata puuttumattomalla sarakkeella, kun taas select yrität saada voimassa olevan UNION komennon toimimaan - tämä toimii vain silloin, kun kahdella kyselyllä, jotka yhdistetään yhdistyksellä, on sama määrä sarakkeita.

Satunnaisista kirjaimista joidenkin rivien lopussa on todennäköisesti joku, joka suorittaa sqlmap-työkalun lomaketta vastaan, mutta se, että olet löytänyt ne tietokannassasi, on hyvä asia - se viittaa siihen, että yritys epäonnistui, vaikka se onkin että nämä ovat vain epäonnistuneet osat onnistuneesta hyökkäyksestä.

3 comments
Taemyr 09/30/2017
Paitsi että tämä on joko päivitys tai lisäyslauseke, ei valinta. Tiedämme, koska löydämme user_id-merkinnät tietokantaamme. (Tietenkään se ei ole antanut, että hyökkääjä tietää tämän - hän saattaa vain työntää tiedot käteväksi kentälle lomakkeessa)
5 JeffUK 10/02/2017
Joskus hyökkääjä ei ymmärrä, että tietyssä sisääntulopisteessä on useita sivuvaikutuksia. Esimerkiksi he voivat pistää hakukenttään, odottaa, että se vaikuttaa vain saamiin tuloksiin, mutta jos tulokset kirjataan jonnekin, he voivat vahingossa rikkoa myös "INSERT" -lausekkeen. Ja voi aiheuttaa virheen, kun ylläpitäjä lataa "lokit" -sivun (myös erittäin voimakas hyökkäyskenttä)
Anders 10/03/2017
Hyvä vastaus! Haluan kuitenkin lisätä, että if käyttäjätunnuksen pitäisi olla numeerinen, niin se, että voit lisätä merkkijonoja, ei ole hyvä. Ei vaarallinen sinänsä, mutta vähän levoton. Myös, jos käyttäjät todella voisivat valita oman tunnuksensa? Ja jos tämä ei ole käyttäjän taulukossa, eikö ole olemassa ulkomaista avainsanaa, joka rajoittaa arvoja nykyisille käyttäjille?

Denis 09/30/2017.

Tämä johtuu siitä, että joku yrittää hyödyntää SQL-injektioasi sivustossasi. Joku yritti havaita, onko verkkosivustosi altis unionipohjaiselle pistokselle . Kaikille tietueille, joita näet, se ei näytä toimineen.

Tarkista, onko käyttöoikeusasiakirjasi ja virhepäiväkirjasi kyseisellä ajanjaksolla, onko lisäpyyntöjä tehty.

Yksi epäilyttävä asia, jonka huomasin, on se, että en näe mitään merkintöjä, jotka sisältävät kaksinkertaisia ​​lainausmerkkejä ("), jotka saattavat osoittaa, että ne rikkoutuivat sivuston toimivuutta tai injektointia käyttäen sivustosi vastaisia ​​kaksinkertaisia ​​lainausmerkkejä.

Haluat ehkä tarkistaa asianomaisen lähdekoodin nähdäksesi, onko parametrien arvojen asianmukainen puhdistus tehty. Tämä voitaisiin myös selittää, jos jokin muu osa asennustasi estäisi pyyntöjä kaksinkertaisella lainausmerkillä tai injektioilla heidän kanssaan, ei vain yritetty.

4 comments
Taemyr 09/30/2017
Kuinka tämä hyökkäys olisi toiminut, kun se suunnattiin inserttiä tai päivityslauseketta vastaan? Yritän pistää tilauksen lausekkeella tai liittymällä tiettyyn lausumaan, mutta lopputulos ei näytä olevan mielekästä insertille. Oletan, että unioni voi aiheuttaa huomattavia ajoituseroja päivitykselle.
2 Sumurai8 09/30/2017
Kuvittelen, että jos hyökkäys toimi, se lisäisi liiton arvot varsinaisten kenttien sijaan. Nämä kentät voidaan myöhemmin paljastaa useilla eri tavoilla (esim. Voit käyttää käyttäjätunnusta osana url-profiilikuvaa tai voit heittää virheen "Tuntematon rooli 79". Hyökkääjä tietäen, että tämä on mahdollisuus voi muuttaa kysely paljastaa kriittiset tiedot kyseisellä kentällä (esim. ensimmäisen käyttäjän salasanan hajautus tai yrittää tietokantokäyttäjän salasanan osittain sokea arvaus). He eivät ehkä edes vaatisi mitään järkevää tapahtua, jos he voivat ladata tiedoston läpi sql.
1 mvds 09/30/2017
Katso vastaukseni tällaisista skenaarioista. He ovat olemassa, olen nähnyt heidät!
Kat 10/03/2017
Double quotes ei ole olemassa, luultavasti yksinkertaisesti siksi, että kaksinkertaisia ​​lainauksia käytetään vain tunnisteisiin, jos mitään. Ei ole järkevää käyttää niitä SQL-injektioissa.

mvds 09/30/2017.

Jo annettujen hyvien vastausten lisäksi, sanomalla, että nämä ovat luultavasti merkkejä unsuccessful yrityksistä, haluaisin lisätä, että nämä käyttäjätunnukset voivat olla osa entistä yksityiskohtaisempaa successful pistämistä.

Tämä ei ole pelkästään teoreettista. Olen havainnut tilanteita, joissa yhden valitun kyselyn tuloksia käytetään ilman asianmukaista tulosvahvistusta toisessa kyselyssä. Kehittäjä voi vain vahvistaa suoran käyttäjän syötteen ja (virheellisesti) olettaa, että tietokannasta coming from kaikki ovat turvallisia. Niinpä, kunnes nämä käyttäjätunnusten arvot tallennetaan, mikään ei ole väärä, mutta myöhemmissä kyselyissä taika tapahtuu. Erityisen vaarallisia ovat kokonaislukualueet, jotka muuttuvat merkkijonoksi, kun kokonaislukuja käytetään usein ilman pakenemista tai lainauksia.

Sivuhuomautus: On erittäin tehokasta kirjautua / ilmoittaa jokaisesta epäonnistuneesta kyselystä, koska on lähes mahdotonta tehdä ruiske tuntemattomalla järjestelmällä käynnistämättä ainakin joitain virheitä. Tämän lisäksi kyselyn ei pitäisi koskaan epäonnistua (kuten: syntaksivirhe) tuotantojärjestelmässä.

5 comments
7 Charles Duffy 10/01/2017
Epäonnistuminen "asianmukainen tuoton mitätöiminen" sisällöstä, joka on lukittu tietokannasta, ei riitä, jotta tällainen ongelma voisi olla. Yksi on also jättää huomiotta kardinaali-sääntö koskaan, never synny SQL-kyselyjä merkkijono-ketjutuksen kautta.
1 Alexander 10/02/2017
@CharlesDuffy Eikö ole sallittua tuottaa parametroituja kyselyitä merkkijono-ketjutuksen avulla? Miten luotaisiin parametroitu SQL-kysely IN lausekkeella, jossa on vaihteleva määrä voimassa olevia arvoja sitten?
wizzwizz4 10/02/2017
@Alexander Jos ne ovat kaikki vakioita, se on OK. Jos kuitenkin on muuttuja missä tahansa, niin no . Kysely 5000003 merkkiä on ehkä huono idea.
9 mvds 10/02/2017
En ymmärrä, miksi tämä keskustelu on täällä. Haluaisin kuitenkin korostaa, että mikään "kardinaarinen SQL-sääntö" ei aina tallenna sinua, jos luotat tietokannasta tulevaa sisältöä. Maailma on isompi kuin SQL: sisältöä voidaan käyttää useissa muissa (ei parametroiduissa) konteksteissa, joista jokaisella on omat loitonsa / pakenemisvaatimuksensa. Ensisijaisen säännön pitäisi olla luottaa tietokannasta tulevasta sisällöstä ja käsitellä sitä kuten käyttäjän syöttö .
2 Christophe Roussy 10/02/2017
Tämä on hyvä neuvo, monivaiheiset hyökkäykset ovat enemmän pahoja, mutta harvat pitävät niitä.

HighResolutionMusic.com - Download Hi-Res Songs

1 (G)I-DLE

POP/STARS flac

(G)I-DLE. 2018. Writer: Riot Music Team;Harloe.
2 Ariana Grande

​Thank U, Next flac

Ariana Grande. 2018. Writer: Crazy Mike;Scootie;Victoria Monét;Tayla Parx;TBHits;Ariana Grande.
3 Imagine Dragons

Bad Liar flac

Imagine Dragons. 2018. Writer: Jorgen Odegard;Daniel Platzman;Ben McKee;Wayne Sermon;Aja Volkman;Dan Reynolds.
4 Backstreet Boys

Chances flac

Backstreet Boys. 2018.
5 Clean Bandit

Baby flac

Clean Bandit. 2018. Writer: Jack Patterson;Kamille;Jason Evigan;Matthew Knott;Marina;Luis Fonsi.
6 BlackPink

Kiss And Make Up flac

BlackPink. 2018. Writer: Soke;Kny Factory;Billboard;Chelcee Grimes;Teddy Park;Marc Vincent;Dua Lipa.
7 Lady Gaga

I'll Never Love Again flac

Lady Gaga. 2018. Writer: Benjamin Rice;Lady Gaga.
8 Little Mix

Told You So flac

Little Mix. 2018. Writer: Eyelar;MNEK;Raye.
9 BTS

Waste It On Me flac

BTS. 2018. Writer: Steve Aoki;Jeff Halavacs;Ryan Ogren;Michael Gazzo;Nate Cyphert;Sean Foreman;RM.
10 Kelly Clarkson

Never Enough flac

Kelly Clarkson. 2018. Writer: Benj Pasek;Justin Paul.
11 Halsey

Without Me flac

Halsey. 2018. Writer: Halsey;Delacey;Louis Bell;Amy Allen;Justin Timberlake;Timbaland;Scott Storch.
12 Little Mix

Woman Like Me flac

Little Mix. 2018. Writer: Nicki Minaj;Steve Mac;Ed Sheeran;Jess Glynne.
13 Bradley Cooper

Always Remember Us This Way flac

Bradley Cooper. 2018. Writer: Lady Gaga;Dave Cobb.
14 Diplo

Close To Me flac

Diplo. 2018. Writer: Ellie Goulding;Savan Kotecha;Peter Svensson;Ilya;Swae Lee;Diplo.
15 Imagine Dragons

Machine flac

Imagine Dragons. 2018. Writer: Wayne Sermon;Daniel Platzman;Dan Reynolds;Ben McKee;Alex Da Kid.
16 Haley Reinhart

Something Strange flac

Haley Reinhart. 2018.
17 Calum Scott

No Matter What flac

Calum Scott. 2018. Writer: Toby Gad;Calum Scott.
18 Cher Lloyd

None Of My Business flac

Cher Lloyd. 2018. Writer: ​iamBADDLUCK;Alexsej Vlasenko;Kate Morgan;Henrik Meinke;Jonas Kalisch;Jeremy Chacon.
19 XXXTENTACION

Bad flac

XXXTENTACION. 2018. Writer: Robert Soukiasyan;John Cunningham;XXXTENTACION.
20 Ashley Tisdale

Voices In My Head flac

Ashley Tisdale. 2018. Writer: John Feldmann;Ashley Tisdale.

Related questions

Hot questions

Language

Popular Tags