80,443 - Pentesting Web Methodology
Ikiwa una nia ya kazi ya kuhack na kuhack mambo yasiyohack - tunakupa kazi! (ujuzi wa Kipolishi ulioandikwa na kuzungumzwa vizuri unahitajika).
Taarifa Msingi
Huduma ya wavuti ni huduma ya kawaida na pana zaidi na kuna aina nyingi za udhaifu.
Bandari ya chaguo: 80 (HTTP), 443(HTTPS)
Mwongozo wa Web API
pageWeb API PentestingMuhtasari wa Methodology
Katika methodology hii tutadhani kwamba unakwenda kushambulia kikoa (au subdomain) na hiyo tu. Kwa hivyo, unapaswa kutumia methodology hii kwa kila kikoa kilichogunduliwa, subdomain au IP na seva ya wavuti isiyoeleweka ndani ya wigo.
Toleo la Seva (Lenye Udhaifu?)
Kutambua
Angalia ikiwa kuna mdhaifu anayejulikana kwa toleo la seva linalotumika. Vichwa vya HTTP na vidakuzi vya majibu vinaweza kuwa na manufaa sana kwa kutambua teknolojia na/au toleo linalotumiwa. Uchunguzi wa Nmap unaweza kutambua toleo la seva, lakini pia inaweza kuwa na manufaa zana whatweb, webtech au https://builtwith.com/:
Tafuta kwa mapungufu ya toleo la programu ya wavuti
Angalia kama kuna WAF yoyote
Mbinu za kiteknolojia za Wavuti
Baadhi ya mbinu za kutafuta mapungufu katika teknolojia tofauti inayojulikana inayotumiwa:
Chukua kuzingatia kwamba kikoa kimoja kinaweza kutumia teknolojia tofauti kwenye bandari tofauti, folda na subdomains. Ikiwa programu ya wavuti inatumia teknolojia/jukwaa lililotajwa hapo awali au lingine lolote, usisahau kutafuta kwenye Mtandao mbinu mpya (na niambie!).
Mapitio ya Msimbo wa Chanzo
Ikiwa msimbo wa chanzo wa programu unapatikana kwenye github, mbali na kufanya jaribio la White box test la programu kwa yako mwenyewe, kuna habari fulani ambayo inaweza kuwa ya manufaa kwa jaribio la Black-Box la sasa:
Je! Kuna Faili ya Mabadiliko au Soma au Toleo au chochote chenye habari ya toleo inayopatikana kupitia wavuti?
Vipi na wapi vitambulisho vinahifadhiwa? Je! Kuna (inayopatikana?) faili na vitambulisho (majina ya watumiaji au nywila)?
Je! Nywila ziko kwenye maandishi wazi, zimefichwa au ni algoritimu ya hashing ipi inayotumiwa?
Inatumia ufunguo wa msingi wowote kwa kufichua kitu? Algoritimu ipi inayotumiwa?
Je! Unaweza kupata ufikiaji wa faili hizi kwa kutumia kasoro fulani?
Je! Kuna habari ya kuvutia kwenye github (zilizotatuliwa na zisizotatuliwa) masuala? Au katika historia ya kujitolea (labda nywila iliyoingizwa ndani ya kujitolea cha zamani)?
Skana za Kiotomatiki
Skana za Kiotomatiki za kusudi la jumla
Skanari za CMS
Ikiwa CMS inatumika usisahau kuendesha skanari, labda kitu cha kuvutia kitapatikana:
Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish CMSScan: WordPress, Drupal, Joomla, vBulletin tovuti kwa ajili ya masuala ya usalama. (GUI) VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart CMSMap: (W)ordpress, (J)oomla, (D)rupal au (M)oodle droopscan: Drupal, Joomla, Moodle, Silverstripe, Wordpress
Kufikia wakati huu unapaswa tayari kuwa na baadhi ya taarifa kuhusu seva ya wavuti inayotumiwa na mteja (ikiwa kuna data yoyote iliyotolewa) na baadhi ya mbinu za kuzingatia wakati wa jaribio. Ikiwa una bahati, labda umepata hata mfumo wa usimamizi wa yaliyomo (CMS) na kukimbia baadhi ya zana za uchunguzi.
Hatua kwa Hatua Ugunduzi wa Maombi ya Wavuti
Kutoka wakati huu tunaanza kuingiliana na maombi ya wavuti.
Uchunguzi wa Awali
Kurasa za chaguo-msingi zenye habari muhimu:
/robots.txt
/sitemap.xml
/crossdomain.xml
/clientaccesspolicy.xml
/.well-known/
Angalia pia maoni kwenye kurasa kuu na za sekondari.
Kulazimisha makosa
Seva za wavuti zinaweza kutenda kwa njia isiyotarajiwa wakati data isiyotarajiwa inatumwa kwao. Hii inaweza kufunua mapungufu au kufichua taarifa nyeti.
Fikia kurasa bandia kama /whatever_fake.php (.aspx,.html,.n.k)
Ongeza "[]", "]]", na "[[" kwenye thamani za vidakuzi na thamani za parameta ili kusababisha makosa
Zalisha kosa kwa kutoa kuingiza kama
/~randomthing/%s
mwishoni mwa URLJaribu Vidirisha vya HTTP tofauti kama PATCH, DEBUG au visivyo sahihi kama FAKE
Angalia kama unaweza kupakia faili (PUT verb, WebDav)
Ikiwa unagundua kuwa WebDav imewezeshwa lakini huna idhini ya kutosha ya kupakia faili kwenye saraka ya msingi, jaribu:
Kuvunja Nguvu siri
Pakia faili kupitia WebDav kwenye mabara mengine yaliyopatikana ndani ya ukurasa wa wavuti. Unaweza kuwa na idhini ya kupakia faili kwenye mabara mengine.
Mapungufu ya SSL/TLS
Ikiwa maombi hayalazimishi matumizi ya HTTPS kwa sehemu yoyote, basi ni dhaifu kwa MitM
Ikiwa maombi yanatuma data nyeti (nywila) kwa kutumia HTTP. Basi ni mapungufu makubwa.
Tumia testssl.sh kuchunguza mapungufu (Katika programu za Bug Bounty labda mapungufu kama haya hayatakubalika) na tumia a2sv kuchunguza upya mapungufu:
Maelezo kuhusu Udhaifu wa SSL/TLS:
Kupambana na Mtandao
Zindua aina fulani ya buibui ndani ya wavuti. Lengo la buibui ni kupata njia nyingi iwezekanavyo kutoka kwenye programu iliyopimwa. Kwa hivyo, utaftaji wa wavuti na vyanzo vya nje vinapaswa kutumika kupata njia halali kadri iwezekanavyo.
gospider (go): Buibui wa HTML, LinkFinder katika faili za JS na vyanzo vya nje (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
hakrawler (go): Buibui wa HML, na LinkFider kwa faili za JS na Archive.org kama chanzo cha nje.
dirhunt (python): Buibui wa HTML, pia inaonyesha "faili zenye thamani".
evine (go): Buibui wa HTML ya CLI ya kuingiliana. Pia inatafuta kwenye Archive.org
meg (go): Zana hii sio buibui lakini inaweza kuwa na manufaa. Unaweza tu kuonyesha faili na wenyeji na faili na njia na meg itapata kila njia kwa kila mwenyeji na kuhifadhi majibu.
urlgrab (go): Buibui wa HTML na uwezo wa kurendera JS. Walakini, inaonekana haijatunzwa, toleo lililopangwa mapema ni la zamani na nambari ya sasa haijatengenezwa
gau (go): Buibui wa HTML anayetumia watoa huduma wa nje (wayback, otx, commoncrawl)
ParamSpider: Skripti hii itapata URL na parameta na kuziorodhesha.
galer (go): Buibui wa HTML na uwezo wa kurendera JS.
LinkFinder (python): Buibui wa HTML, na uwezo wa urembo wa JS unao uwezo wa kutafuta njia mpya katika faili za JS. Inaweza kuwa na thamani pia kutazama JSScanner, ambayo ni kifuniko cha LinkFinder.
goLinkFinder (go): Kutoa sehemu za mwisho katika chanzo cha HTML na faili za javascript zilizojumuishwa. Inafaa kwa wawindaji wa mdudu, timu nyekundu, na mahinja wa habari za usalama.
JSParser (python2.7): Skripti ya python 2.7 ikitumia Tornado na JSBeautifier kuchambua URL za kihusiani kutoka kwenye faili za JavaScript. Inafaa kwa kugundua kwa urahisi maombi ya AJAX. Inaonekana haijatunzwa.
relative-url-extractor (ruby): Ikiwa imepewa faili (HTML) itaondoa URL kutoka kwake kwa kutumia mbinu ya kawaida ya kutafuta na kutoa URL za kihusiani kutoka kwa faili zenye urembo (minify).
JSFScan (bash, zana kadhaa): Kusanya habari muhimu kutoka kwa faili za JS kwa kutumia zana kadhaa.
subjs (go): Pata faili za JS.
page-fetch (go): Pakia ukurasa katika kivinjari bila kichwa na chapisha URL zote zilizopakiwa kwenye ukurasa.
Feroxbuster (rust): Zana ya ugunduzi wa maudhui ikichanganya chaguo kadhaa za zana za awali
Uchambuzi wa JavaScript: Kifuniko cha Burp cha kupata njia na parameta katika faili za JS.
Sourcemapper: Zana ambayo ikipewa URL ya .js.map itapata nambari ya JS iliyopambwa
xnLinkFinder: Hii ni zana inayotumiwa kugundua sehemu za mwisho kwa lengo lililopewa.
waymore: Gudua viungo kutoka kwa mashine ya wayback (pia kupakua majibu katika wayback na kutafuta viungo zaidi
HTTPLoot (go): Tafuta (hata kwa kujaza fomu) na pia gundua habari nyeti kwa kutumia regex maalum.
SpiderSuite: Spider Suite ni Buibui ya Usalama wa Wavuti ya GUI yenye vipengele vingi iliyoundwa kwa wataalamu wa usalama wa cyber.
jsluice (go): Ni pakiti ya Go na zana ya mstari wa amri ya kutoa URL, njia, siri, na data nyingine ya kuvutia kutoka kwa nambari ya chanzo cha JavaScript.
ParaForge: ParaForge ni kifuniko rahisi cha Burp Suite cha kutoa parameta na sehemu za mwisho kutoka kwa ombi ili kuunda orodha ya maneno ya desturi kwa ajili ya kufanya uchunguzi na kutambua.
katana (go): Zana nzuri kwa hili.
Kufanya Uvumbuzi wa Daktari na Faili
Anza kufanya uvumbuzi wa daktari kutoka kwenye folda ya msingi na hakikisha kufanya uvumbuzi wa daktari katika directories zote zilizopatikana kwa kutumia njia hii na directories zote zilizogunduliwa na Kupambana na Mtandao (unaweza kufanya uvumbuzi huu wa daktari kwa njia ya mfululizo na kuongeza mwanzoni mwa orodha ya maneno iliyotumiwa majina ya directories zilizopatikana). Zana:
Dirb / Dirbuster - Imejumuishwa katika Kali, zamani (na polepole) lakini inafanya kazi. Inaruhusu vyeti vilivyosainiwa kiotomatiki na utaftaji wa mfululizo. Polepole sana ikilinganishwa na chaguo zingine.
Dirsearch (python): Hauruhusu vyeti vilivyosainiwa kiotomatiki lakini inaruhusu utaftaji wa mfululizo.
Gobuster (go): Inaruhusu vyeti vilivyosainiwa kiotomatiki, haina utaftaji wa mfululizo.
Feroxbuster - Haraka, inasaidia utaftaji wa mfululizo.
wfuzz
wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ
ffuf - Haraka:
ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ
uro (python): Hii sio buibui bali ni zana ambayo ikipewa orodha ya URL zilizopatikana itafuta kufuta URL "zilizodondolewa".
Scavenger: Kifuniko cha Burp cha kuunda orodha ya directories kutoka kwa historia ya burp ya kurasa tofauti
TrashCompactor: Ondoa URL zenye utendaji uliodondolewa (kulingana na uingizaji wa js)
Chamaleon: Inatumia wapalyzer kugundua teknolojia zilizotumiwa na kuchagua orodha za maneno za kutumia.
Maneno ya kupendekezwa:
raft-large-directories-lowercase.txt
directory-list-2.3-medium.txt
RobotsDisallowed/top10000.txt
/usr/share/wordlists/dirb/common.txt
/usr/share/wordlists/dirb/big.txt
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Note kwamba wakati wowote saraka mpya inagunduliwa wakati wa kufanya nguvu-kulazimisha au kufanya spidering, inapaswa kufanyiwa Nguvu-Kulazimishwa.
Mambo ya kuangalia kwenye kila faili inayopatikana
Mchunguzi wa viungo vilivunjika: Tafuta viungo vilivunjika ndani ya HTML ambavyo vinaweza kuwa rahisi kuchukuliwa
Nakala za Faili: Mara baada ya kupata faili zote, tafuta nakala za faili zote za kutekelezeka (".php", ".aspx"...). Mabadiliko ya kawaida kwa jina la nakala ni: faili.ext~, #faili.ext#, ~faili.ext, faili.ext.bak, faili.ext.tmp, faili.ext.old, faili.bak, faili.tmp na faili.old. Unaweza pia kutumia zana bfac au backup-gen.
Gundua vigezo vipya: Unaweza kutumia zana kama Arjun, parameth, x8 na Param Miner kugundua vigezo vilivyofichwa. Ikiwa unaweza, unaweza kujaribu kutafuta vigezo vilivyofichwa kwenye kila faili ya wavuti inayoweza kutekelezeka.
Arjun orodha za maneno ya msingi: https://github.com/s0md3v/Arjun/tree/master/arjun/db
Param-miner "params" : https://github.com/PortSwigger/param-miner/blob/master/resources/params
Assetnote "parameters_top_1m": https://wordlists.assetnote.io/
nullenc0de "params.txt": https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773
Maoni: Angalia maoni ya faili zote, unaweza kupata vyeti au kazi iliyofichwa.
Ikiwa unacheza CTF, "udanganyifu" wa kawaida ni kuficha habari ndani ya maoni kwenye kulia ya ukurasa (ukiitumia maelfu ya nafasi ili usione data ikiwa unafungua nambari ya chanzo na kivinjari). Uwezekano mwingine ni kutumia mistari mpya kadhaa na kuficha habari katika maoni chini ya ukurasa wa wavuti.
Vidokezo vya API: Ikiwa unapata funguo yoyote ya API kuna mwongozo unaonyesha jinsi ya kutumia funguo za API za majukwaa tofauti: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
Funguo za API za Google: Ikiwa unapata funguo yoyote ya API inayofanana na AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik unaweza kutumia mradi gmapapiscanner kuchunguza ni api zipi funguo inaweza kupata.
S3 Buckets: Wakati wa kufanya spidering angalia ikiwa subdomain au kiungo chochote kina uhusiano na S3 bucket fulani. Katika kesi hiyo, angalia ruhusa za bucket.
Uvumbuzi Maalum
Wakati wa kufanya spidering na nguvu-kulazimisha unaweza kupata vituko vya kuvutia ambavyo unapaswa kuzingatia.
Faili za Kuvutia
Tafuta viungo kwenye faili zingine ndani ya faili za CSS.
Ikiwa unapata faili ya .env habari kama vile funguo za api, nywila za db na habari nyingine zinaweza kupatikana.
Ikiwa unapata malengo ya API unapaswa pia kuyajaribu. Hizi sio faili, lakini labda "zitaonekana kama" hizo.
Faili za JS: Katika sehemu ya spidering zilitajwa zana kadhaa zinazoweza kutoa njia kutoka kwenye faili za JS. Pia, itakuwa ya kuvutia kuangalia kila faili ya JS iliyopatikana, kwani kwa baadhi ya hali, mabadiliko yanaweza kuashiria kuwa udhaifu wa uwezekano uliletwa kwenye nambari. Unaweza kutumia kwa mfano JSMon.
Deobfuscator na Unpacker wa Javascript: https://lelinhtinh.github.io/de4js/, https://www.dcode.fr/javascript-unobfuscator
Javascript Beautifier: http://jsbeautifier.org/, http://jsnice.org/
Ufichuaji wa JsFuck (javascript na herufi:"[]!+" https://ooze.ninja/javascript/poisonjs/)
TrainFuck:
+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.
Katika hali kadhaa utahitaji kuelewa matumizi ya kanuni za kawaida zilizotumiwa, hii itakuwa muhimu: https://regex101.com/
Unaweza pia kuangalia faili ambapo fomu ziligunduliwa, kwani mabadiliko katika parameter au kuonekana kwa fomu mpya kunaweza kuashiria uwezekano wa kazi mpya inayoweza kuwa na udhaifu mpya.
403 Imezuiwa/uthibitishaji wa Msingi/401 Hauruhusiwi (kipuuzi)
page403 & 401 BypassesKosa la Proksi la 502
Ikiwa ukurasa wowote unajibu na nambari hiyo, labda ni proksi iliyopangwa vibaya. Ikiwa unatuma ombi la HTTP kama: GET https://google.com HTTP/1.1
(na kichwa cha mwenyeji na vichwa vingine vya kawaida), proksi itajaribu kufikia google.com na utakuwa umepata SSRF.
Uthibitishaji wa NTLM - Ufunuo wa habari
Ikiwa seva inayotumika inayouliza uthibitishaji ni Windows au unapata ombi la kuingia linalouliza vyeti vyako (na kuuliza jina la domaini), unaweza kusababisha ufunuo wa habari.
Tuma kichwa: “Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”
na kutokana na jinsi uthibitishaji wa NTLM unavyofanya kazi, seva itajibu na habari za ndani (toleo la IIS, toleo la Windows...) ndani ya kichwa "WWW-Authenticate".
Unaweza kutumia hii kiotomatiki kwa kutumia nmap plugin "http-ntlm-info.nse".
Uelekezaji wa HTTP (CTF)
Inawezekana kuweka maudhui ndani ya Uelekezaji. Maudhui haya hayataonyeshwa kwa mtumiaji (kwa sababu kivinjari kitatekeleza uelekezaji) lakini kitu kinaweza kufichwa ndani yake.
Ukaguzi wa Udhaifu wa Wavuti
Sasa baada ya uchunguzi kamili wa programu ya wavuti umefanywa ni wakati wa kuchunguza udhaifu mwingi uwezekanao. Unaweza kupata orodha ya ukaguzi hapa:
pageWeb Vulnerabilities MethodologyPata habari zaidi kuhusu udhaifu wa wavuti katika:
Fuatilia Kurasa kwa Mabadiliko
Unaweza kutumia zana kama https://github.com/dgtlmoon/changedetection.io kufuatilia kurasa kwa mabadiliko ambayo yanaweza kuweka udhaifu.
Ikiwa una nia katika kazi ya udukuzi na kudukua yasiyoweza kudukuliwa - tunatoa ajira! (inahitajika uwezo wa kuandika na kuzungumza Kipolishi kwa ufasaha).
Amri za Kiotomatiki za HackTricks
Last updated