80,443 - Pentesting Web Methodology
If you are interested in hacking career and hack the unhackable - we are hiring! (fluent polish written and spoken required).
Basic Info
Huduma ya wavuti ni huduma ya kawaida na pana zaidi na aina nyingi za udhaifu zipo.
Default port: 80 (HTTP), 443(HTTPS)
Mwongozo wa Web API
Web API PentestingMuhtasari wa Mbinu
Katika mbinu hii tutadhani kwamba unataka kushambulia kikoa (au subdomain) na tu hicho. Hivyo, unapaswa kutumia mbinu hii kwa kila kikoa, subdomain au IP iliyogunduliwa yenye seva ya wavuti isiyojulikana ndani ya upeo.
Toleo la Seva (Lina Udhihirisho?)
Tambua
Angalia kama kuna udhaifu unaojulikana kwa toleo la seva inayotumika. Vichwa vya HTTP na vidakuzi vya jibu vinaweza kuwa na manufaa sana katika kutambua teknolojia na/au toleo linalotumika. Nmap skani inaweza kutambua toleo la seva, lakini pia inaweza kuwa na manufaa kutumia zana whatweb, webtech au https://builtwith.com/:
Search for vulnerabilities of the web application version
Check if any WAF
Web tech tricks
Baadhi ya tricks za finding vulnerabilities katika technologies tofauti maarufu zinazotumika:
Kumbuka kwamba domain hiyo hiyo inaweza kuwa ikitumia technologies tofauti katika ports, folders na subdomains. Ikiwa programu ya wavuti inatumia tech/platform maarufu zilizoorodheshwa hapo awali au zingine yoyote, usisahau kutafuta kwenye Mtandao tricks mpya (na unijulishe!).
Source Code Review
Ikiwa source code ya programu inapatikana katika github, mbali na kufanya White box test ya programu kwa yako mwenyewe, kuna maelezo ambayo yanaweza kuwa muhimu kwa Black-Box testing ya sasa:
Je, kuna Change-log au Readme au Version file au chochote chenye version info accessible kupitia wavuti?
Je, credentials zimehifadhiwaje na wapi? Je, kuna file (inaweza kufikiwa?) yenye credentials (majina ya watumiaji au nywila)?
Je, passwords ziko katika plain text, encrypted au ni hashing algorithm gani inatumika?
Je, inatumia master key yoyote kwa ajili ya kuandika kitu? Ni algorithm gani inatumika?
Je, unaweza kufikia yoyote ya hizi files kwa kutumia udhaifu wowote?
Je, kuna maelezo ya kuvutia katika github (masuala yaliyotatuliwa na yasiyotatuliwa)? Au katika commit history (labda password iliyoingizwa ndani ya commit ya zamani)?
Automatic scanners
General purpose automatic scanners
CMS scanners
Ikiwa CMS inatumika usisahau kufanya skana, labda kitu cha kuvutia kitatokea:
Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish CMSScan: WordPress, Drupal, Joomla, vBulletin tovuti za 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
Katika hatua hii unapaswa kuwa na taarifa fulani kuhusu seva ya wavuti inayotumiwa na mteja (ikiwa kuna data yoyote iliyotolewa) na mbinu fulani za kukumbuka wakati wa mtihani. Ikiwa una bahati umepata hata CMS na ukafanya skana.
Hatua kwa hatua Ugunduzi wa Programu za Wavuti
Kutoka hapa tutaanza kuingiliana na programu ya wavuti.
Ukaguzi wa Awali
Kurasa za Kawaida zenye taarifa za kuvutia:
/robots.txt
/sitemap.xml
/crossdomain.xml
/clientaccesspolicy.xml
/.well-known/
Angalia pia maoni katika kurasa kuu na za sekondari.
Kusababisha makosa
Seva za wavuti zinaweza kufanya kazi kwa njia isiyo ya kawaida wakati data za ajabu zinatumwa kwao. Hii inaweza kufungua vulnerabilities au kuonyesha taarifa nyeti.
Fikia kurasa za uongo kama /whatever_fake.php (.aspx,.html,.n.k)
Ongeza "[]", "]]", na "[[" katika maadili ya cookie na maadili ya parameter ili kuunda makosa
Tengeneza kosa kwa kutoa ingizo kama
/~randomthing/%s
kwenye mwisho wa URLJaribu HTTP Verbs tofauti kama PATCH, DEBUG au makosa kama FAKE
Angalia kama unaweza kupakia faili (PUT verb, WebDav)
Ikiwa unapata kuwa WebDav ime wezeshwa lakini huna ruhusa ya kutosha kwa kupakia faili kwenye folda ya mzizi jaribu:
Brute Force akreditif
Pakia faili kupitia WebDav kwenye sehemu za folda zilizopatikana ndani ya ukurasa wa wavuti. Unaweza kuwa na ruhusa za kupakia faili katika folda nyingine.
Vulnerabilities za SSL/TLS
Ikiwa programu haiwalazimishi watumiaji kutumia HTTPS katika sehemu yoyote, basi ni vulnerable to MitM
Ikiwa programu inatumia kutuma data nyeti (nywila) kwa kutumia HTTP. Basi ni vulnerability kubwa.
Tumia testssl.sh kuangalia vulnerabilities (Katika programu za Bug Bounty labda aina hizi za vulnerabilities hazitakubaliwa) na tumia a2sv kuangalia tena vulnerabilities:
Information about SSL/TLS vulnerabilities:
Spidering
Zindua aina ya spider ndani ya wavuti. Lengo la spider ni kupata njia nyingi kadri iwezekanavyo kutoka kwa programu iliyojaribiwa. Hivyo, kuvinjari wavuti na vyanzo vya nje vinapaswa kutumika ili kupata njia halali nyingi kadri iwezekanavyo.
gospider (go): HTML spider, LinkFinder katika faili za JS na vyanzo vya nje (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
hakrawler (go): HML spider, na LinkFider kwa faili za JS na Archive.org kama chanzo cha nje.
dirhunt (python): HTML spider, pia inaonyesha "faili za kuvutia".
evine (go): Interactive CLI HTML spider. Pia inatafuta katika Archive.org
meg (go): Chombo hiki si spider lakini kinaweza kuwa na manufaa. Unaweza tu kuashiria faili yenye mwenyeji na faili yenye njia na meg itachukua kila njia kwenye kila mwenyeji na kuhifadhi jibu.
urlgrab (go): HTML spider yenye uwezo wa kuunda JS. Hata hivyo, inaonekana kama haijatunzwa, toleo lililotayarishwa ni la zamani na msimbo wa sasa haujajitengeneza.
gau (go): HTML spider inayotumia watoa huduma wa nje (wayback, otx, commoncrawl)
ParamSpider: Hii ni script itakayopata URLs zenye parameta na kuziorodhesha.
galer (go): HTML spider yenye uwezo wa kuunda JS.
LinkFinder (python): HTML spider, yenye uwezo wa kuboresha JS inayoweza kutafuta njia mpya katika faili za JS. Inaweza kuwa na manufaa pia kuangalia JSScanner, ambayo ni wrapper ya LinkFinder.
goLinkFinder (go): Kutolewa kwa mwisho katika chanzo cha HTML na faili za javascript zilizojumuishwa. Inafaida kwa wawindaji wa makosa, timu nyekundu, na ninjas wa infosec.
JSParser (python2.7): Script ya python 2.7 inayotumia Tornado na JSBeautifier kuchambua URLs zinazohusiana kutoka kwa faili za JavaScript. Inafaida kwa kugundua maombi ya AJAX kwa urahisi. Inaonekana kama haijatunzwa.
relative-url-extractor (ruby): Iwapo kuna faili (HTML) itatoa URLs kutoka kwake kwa kutumia kanuni nzuri za kawaida ili kupata na kutoa URLs zinazohusiana kutoka kwa faili mbaya (minify).
JSFScan (bash, zana kadhaa): Kusanya habari za kuvutia kutoka kwa faili za JS kwa kutumia zana kadhaa.
subjs (go): Pata faili za JS.
page-fetch (go): Pakia ukurasa katika kivinjari kisichokuwa na kichwa na uchapishe URLs zote zilizopakiwa ili kupakia ukurasa.
Feroxbuster (rust): Chombo cha kugundua maudhui kinachochanganya chaguzi kadhaa za zana zilizotangulia.
Javascript Parsing: Kiendelezi cha Burp kutafuta njia na parameta katika faili za JS.
Sourcemapper: Chombo ambacho kwa URL ya .js.map kitakuletea msimbo wa JS ulioimarishwa.
xnLinkFinder: Hii ni chombo kinachotumika kugundua mwisho kwa lengo fulani.
waymore: Gundua viungo kutoka kwa mashine ya wayback (pia kupakua majibu katika wayback na kutafuta viungo zaidi).
HTTPLoot (go): Vinjari (hata kwa kujaza fomu) na pia pata habari nyeti kwa kutumia regex maalum.
SpiderSuite: Spider Suite ni GUI ya hali ya juu ya usalama wa wavuti Crawler/Spider iliyoundwa kwa wataalamu wa usalama wa mtandao.
jsluice (go): Ni pakiti ya Go na chombo cha amri kwa kutolewa kwa URLs, njia, siri, na data nyingine za kuvutia kutoka kwa msimbo wa chanzo wa JavaScript.
ParaForge: ParaForge ni kiendelezi rahisi cha Burp Suite ili kutolewa kwa parameta na mwisho kutoka kwa ombi ili kuunda orodha maalum ya maneno kwa fuzzing na orodha.
katana (go): Chombo bora kwa hili.
Crawley (go): Chapisha kila kiungo kinachoweza kupatikana.
Brute Force directories and files
Anza brute-forcing kutoka kwenye folda ya mzizi na uhakikishe unafanya brute-force zote za directories zilizopatikana kwa kutumia hii mbinu na zote za directories zilizogunduliwa na Spidering (unaweza kufanya brute-forcing hii kikamilifu na kuongeza mwanzoni mwa orodha ya maneno iliyotumika majina ya directories zilizopatikana). Zana:
Dirb / Dirbuster - Imejumuishwa katika Kali, ya zamani (na polepole) lakini inafanya kazi. Inaruhusu vyeti vilivyojitiisha kiotomatiki na utafutaji wa kurudiwa. Polepole sana ikilinganishwa na chaguzi nyingine.
Dirsearch (python): Haipati vyeti vilivyojitiisha kiotomatiki lakini inaruhusu utafutaji wa kurudiwa.
Gobuster (go): Inaruhusu vyeti vilivyojitiisha kiotomatiki, haina utaftaji wa kurudiwa.
Feroxbuster - Haraka, inasaidia utafutaji wa kurudiwa.
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 si spider lakini ni chombo ambacho kwa orodha ya URLs zilizopatikana kitafuta "URLs zilizojirudia".
Scavenger: Kiendelezi cha Burp kuunda orodha ya directories kutoka kwa historia ya burp ya kurasa tofauti.
TrashCompactor: Ondoa URLs zenye kazi zilizojirudia (kulingana na uagizaji wa js).
Chamaleon: Inatumia wapalyzer kugundua teknolojia zinazotumika na kuchagua orodha za maneno za kutumia.
Recommended dictionaries:
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
Kumbuka kwamba kila wakati directory mpya inapatikana wakati wa brute-forcing au spidering, inapaswa kufanywa Brute-Forced.
What to check on each file found
Broken link checker: Pata viungo vilivyovunjika ndani ya HTMLs ambavyo vinaweza kuwa na hatari ya kuchukuliwa.
File Backups: Mara tu unapopata faili zote, angalia nakala za faili zote zinazoweza kutekelezwa (".php", ".aspx"...). Mabadiliko ya kawaida ya kutaja nakala ni: file.ext~, #file.ext#, ~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp na file.old. Unaweza pia kutumia chombo bfac au backup-gen.
Discover new parameters: Unaweza kutumia zana kama Arjun, parameth, x8 na Param Miner kugundua parameta zilizofichwa. Ikiwa unaweza, unaweza kujaribu kutafuta parameta zilizofichwa kwenye kila faili ya wavuti inayoweza kutekelezwa.
Arjun orodha zote za maneno za kawaida: 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
Comments: Angalia maoni ya faili zote, unaweza kupata credentials au ufunctionality iliyofichwa.
Ikiwa unacheza CTF, hila "ya kawaida" ni kuficha habari ndani ya maoni upande wa kulia wa ukurasa (ukitumia mifumo ya maelfu ili usione data ikiwa unafungua msimbo wa chanzo na kivinjari). Uwezekano mwingine ni kutumia michoro kadhaa mipya na kuficha habari katika maoni kwenye chini ya ukurasa wa wavuti.
API keys: Ikiwa unapata funguo zozote za API kuna mwongozo unaoelekeza jinsi ya kutumia funguo za API za majukwaa tofauti: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
Google API keys: Ikiwa unapata funguo zozote za API zinazoonekana kama AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik unaweza kutumia mradi gmapapiscanner kuangalia ni APIs zipi funguo hiyo inaweza kufikia.
S3 Buckets: Wakati wa spidering angalia ikiwa subdomain au kiungo chochote kinahusiana na S3 bucket. Katika kesi hiyo, angalia idhini ya ndoo.
Special findings
Wakati wa kufanya spidering na brute-forcing unaweza kupata mambo ya kuvutia ambayo unapaswa kuangazia.
Interesting files
Angalia viungo kwa faili nyingine ndani ya CSS.
Ikiwa unapata .env habari kama funguo za api, nywila za db na habari nyingine zinaweza kupatikana.
Ikiwa unapata API endpoints unapaswa pia kujaribu hizo. Hizi si faili, lakini labda "zitakuwa kama" hizo.
JS files: Katika sehemu ya spidering zana kadhaa ambazo zinaweza kutoa njia kutoka kwa faili za JS zilitajwa. Pia, itakuwa ya kuvutia kufuatilia kila faili ya JS iliyopatikana, kwani katika baadhi ya matukio, mabadiliko yanaweza kuashiria kuwa udhaifu wa uwezekano umeingizwa katika msimbo. Unaweza kutumia kwa mfano JSMon.
Javascript Deobfuscator and Unpacker: https://lelinhtinh.github.io/de4js/, https://www.dcode.fr/javascript-unobfuscator
Javascript Beautifier: http://jsbeautifier.org/, http://jsnice.org/
JsFuck deobfuscation (javascript with chars:"[]!+" https://ooze.ninja/javascript/poisonjs/)
TrainFuck:
+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.
Katika matukio kadhaa utahitaji kuelewa kanuni za kawaida zinazotumika, hii itakuwa na manufaa: https://regex101.com/
Unaweza pia kufuatilia faili ambapo fomu zilipatikana, kwani mabadiliko katika parameta au kuonekana kwa fomu mpya kunaweza kuashiria uwezekano wa kazi mpya yenye udhaifu.
403 Forbidden/Basic Authentication/401 Unauthorized (bypass)
403 & 401 Bypasses502 Proxy Error
Ikiwa ukurasa wowote unajibu na hiyo nambari, labda ni proxy iliyo na makosa. Ikiwa unatumia ombi la HTTP kama: GET https://google.com HTTP/1.1
(pamoja na kichwa cha mwenyeji na vichwa vingine vya kawaida), proxy itajaribu kufikia google.com na utakuwa umepata SSRF.
NTLM Authentication - Info disclosure
Ikiwa seva inayotumika inahitaji uthibitisho ni Windows au unapata kuingia inayoomba credentials zako (na kuomba jina la domain), unaweza kusababisha ufichuzi wa habari.
Tuma kichwa: “Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”
na kutokana na jinsi uthibitisho wa NTLM unavyofanya kazi, seva itajibu kwa habari za ndani (toleo la IIS, toleo la Windows...) ndani ya kichwa "WWW-Authenticate".
Unaweza kujiandaa hii kwa kutumia nmap plugin "http-ntlm-info.nse".
HTTP Redirect (CTF)
Inawezekana kweka maudhui ndani ya Redirection. Maudhui haya hayataonyeshwa kwa mtumiaji (kama kivinjari kitatekeleza uelekeo) lakini kitu kinaweza kuwa kimefichwa huko.
Web Vulnerabilities Checking
Sasa kwamba orodha kamili ya programu ya wavuti imefanywa ni wakati wa kuangalia uwezekano wa udhaifu mwingi. Unaweza kupata orodha ya ukaguzi hapa:
Web Vulnerabilities MethodologyPata maelezo zaidi kuhusu udhaifu wa wavuti katika:
Monitor Pages for changes
Unaweza kutumia zana kama https://github.com/dgtlmoon/changedetection.io kufuatilia kurasa kwa mabadiliko ambayo yanaweza kuingiza udhaifu.
Ikiwa unavutiwa na kazi ya hacking na kujaribu kuvunja yasiyoweza kuvunjika - tunaajiri! (kuandika na kuzungumza kwa kiswahili vizuri kunahitajika).
HackTricks Automatic Commands
Last updated