网络安全进阶篇(十一章-5)APP渗透测试篇(上)
生活随笔
收集整理的這篇文章主要介紹了
网络安全进阶篇(十一章-5)APP渗透测试篇(上)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
每日一句:滲透測試,一定要有耐心,所有的功能點都要測試。很多地方不親身經歷是沒有太多的感受的。
一、App滲透測試原理
1.簡介App滲透測試與Web滲透測試從某種角度說基本沒有區別App其實就是手機軟件,咱們不需要害怕他。說一個簡單的道理,一個網站存在sql注入,用電腦訪問存在,用咱們的手機去訪問一樣存在注入。大部分漏洞的存在并不是在客戶端而是在服務端例如:SQL注入、驗證碼繞過、越權漏洞、支付漏洞、CSRF、XSS、變量覆蓋、反序列化、文件包含、SSRF、XXE、文件上傳等等這些漏洞web存在,app也存在。2.換個思維角度我們再換一個思路,滲透測試網站,其實核心思想是控制傳參訪問,與服務器產生交互。如果說我們不對他進行訪問和傳參,那么他有可能被你滲透攻擊下來嗎?答案是否定的。滲透測試的核心其實就是把控傳參。其實和App交互的還是服務器,用的還是HTTP協議,交互的服務器還是同一個,網站和App和同一個服務器交互都是很正常的事情。一般都是用api通信,例如:http://xxx/api.xxxxx.com/Api/xxx3.小結正常網站的交互: 瀏覽器 -> 網站App的交互: App -> 網站我們既然可以抓網站的數據包,那么我們能否抓App的數據包?當然可以4.補充(1)提起app,有的朋友可能會在自動在腦海中給App滲透增加一些難度,比如通信加密、重打包、脫殼、逆向 apk解包等等我就說一句,難到web網站的傳輸沒有加密傳輸的? 一個目標網站沒有源碼,就不測試了?src沒有源碼就不挖掘了?不要將自己的思維固定。 在多說一些,其實微信小程序與web也有著千絲萬縷的聯系,本質區別并不大。大多app的安全性會比web網站的還差,各種app的破解軟件基本遍布大街,因為大多剛剛入門的白帽子認為app很難,很少去搞,加上大多app開發的安全性并不比web開發者強多少。而且經過這么多年的發展,其實web的發展也有了一定的瓶頸,特別是對一些大廠的測試,app的滲透測試是比web更容易下手。話不多說上一些前輩們的案例。(2)前人案例https://www.uedbox.com/?s=wooyun+app邏輯漏洞:https://www.uedbox.com/post/10278/ 假裝打碼:https://www.uedbox.com/post/10714/越權漏洞:https://www.uedbox.com/post/10172/ 任意密碼找回:https://www.uedbox.com/post/9621/SQL注入:https://www.uedbox.com/post/11214/XSS:https://www.uedbox.com/post/10169/ (3)擴展看這些案例,想起一個之前項目中遇到的情況。測試某集團,注冊登錄上去,查看我得個人資料。在前端界面看到了我注冊時的一些手機號等待,但是在瀏覽器的JS源碼中有所有人的資料其實這些東西(偽打碼導致的信息泄露)在項目中很常見,比如,前端顯示手機號為:185xxxx6666。抓包就可以看到完整的手機號。有很多小伙伴說挖不倒洞,這些小伙伴問問自己在一個網站上,自己花了多少時間,是不是將與服務器的傳參都測試了?是不是返回包都仔細檢查了? 我想大概率是沒有的,很多時候菜雞與大佬的區別就是細心,對一般的網站測試中,大佬挖到的洞,只要你細心基本也可以挖掘的到。拋去見識與經驗之談,多多少少總會有一些收獲。絕大多數剛入門的白帽子最大的問題是沒有耐心與細心。一個網站5分鐘找不到漏洞直接放棄,說網站防護的太好,不存在漏洞,這種行為是很不可取,并且可笑的。建議剛剛入門不久但小有實力的白帽子一定要戒驕戒躁,要有一定的耐心與恒心。二、安裝安卓模擬器 + 抓包(夜神)
1.安裝模擬器既然是App抓包,那肯定需要先安裝App,那么Windows電腦上怎么安裝App?這里我建議使用安卓模擬器,我用的是夜神模擬器下載地址:https://www.yeshen.com/cn/download/fullPackage直接下載就行,安裝就行別的模擬器與真實的手機也是可以的,只要連接到同一個內網(WIFI)。2.原理模擬器的核心就是在電腦上面模擬出一個手機,然后你可以在上面進行一系列的操作,你可以在上面打游戲,也可以辦公,比如:我以前拿這個模擬器來掛微信,后面拿來釘釘打卡,最后還玩過吃雞,模擬器物理掛,專門帶妹吃雞。這些讓人臉紅的往事就不多提了。3.設置代理模擬器既然拿來做滲透測試,那么我們該如何對安卓模擬器抓包?其實很簡單。(1)配置模擬器找到設置中的Wifi然后長按當前使用的Wifi,會出現高級選項(修改網絡),然后選擇手動設置代理就可以。模擬器的IP同虛擬機的IP一樣,與本機的IP不是同一個IP。所以大家設置模擬器的代理主機名,不要寫127.0.0.1。要設置本機IP,如:192.168.1.66。端口寫8080(其實這個端口寫什么都行),然后我們去配置Burp。(2)配置burp打開burp,點擊Proxy(代理)--Options(設置)--Add(增加)--Specific address(具體地址)選擇192.168.1.66。將Bind to port(監聽端口)設置為8080--點擊ok即可。此時模擬器(手機)上的所有數據都將先發送給burp。可以在模擬器中打開瀏覽器,訪問一些網址,都會在burp中抓到數據。這個時候可能會彈出一些證書問題,一直點擊接受就行,當然,想要從根本上解決問題,需要我們給模擬器安裝個一下burp的證書。補充:模擬器上這么設置。真實的手機上也這么設置就行。主要真實的手機要與電腦連接同一個內網(WIFI)。另外,其實手機上也有一些抓包軟件,但是我個人用不太習慣,且不是太方便就在展開,大家有興趣可以自己去找找。(3)方式一:打開模擬器瀏覽器,訪問192.168.1.66:8080下載證書點擊模擬器的文件管理器,找到剛剛下載的證書。將證書文件的后綴(一般是cacert.der)改為“.cer”點擊設置--安全--從sd卡安裝(證書)找到剛剛修改后的證書,(找不到直接在搜索框搜索)安裝證書,可能會讓起名字任意起一個名字即可(如:a)方式二:(推薦)直接在本機瀏覽器訪問192.168.1.66:8080下載證書將后綴改為“.cer”之后,直接拖進模擬器點擊設置--安全--從sd卡安裝(證書)找到剛剛修改后的證書,(找不到直接在搜索框搜索)安裝證書,可能會讓起名字任意起一個名字即可(如:a)其實這些和web瀏覽器安裝證書幾乎沒啥區別,原理也大同小異。三、實戰App滲透測試
0.說明這會用到一些App,由一些前輩老師所設計的。因為一些特殊原因,不可能直接放出來公布與眾,畢竟不是我寫的軟件。(有興趣的同學可以私聊我)1.安裝配置環境打開安裝完畢的軟件,需要小小設置一下。點擊軟件右上角的設置,填寫一個服務器(靶場)地址。 //地址同上述“ 0.說明 ”2.(1)注意的是,很多App訪問地址都是寫死的。App也是有服務端的(客戶端、服務端)客戶端就是個人安裝的App,服務端就是服務器所以不要認為App所有的操作都是在個人手機上完成的,很多App是不停的在和他設定好的服務器之間進行通信的。為什么上邊安裝App的地址沒有寫死呢?因為這是一個靶場。(2)從某種角度說,App的作用很是類似網站web頁面的作用,他僅僅是將內容展示給用戶。同時,將用戶產生的數據發送給寫死的服務端。而對于App本身是不會保存太多重要的數據,他也只是從服務器的數據庫中讀取到了數據,然后經過一些渲染處理展示給手機用戶。其本身并不會保存像數據庫賬戶密碼等敏感內容,也沒必要。(3)另外在模擬器商店下載一些軟件的時候,最好將代理關掉。(在模擬器設置--WiFi代理)下載軟件的時候可能會走一些其他的協議,代理會影響。當然有一些更加簡單粗暴的解決方法:在本機下載app,然后直接拖拽到模擬器安裝。3.抓不到數據包有時候一些小伙伴可能會遇到一個問題:我模擬器瀏覽器的包與大部分應用的數據包都可以抓取得到,但是有個別應用的個別功能數據包就是抓不到這個其實不難理解,在客戶端與服務端進行通信的過程之中,有很多的協議。而burp一般僅僅可以攔截到http/https協議的數據包,對于應用的某些功能走一些特殊的協議這個時候原生的burp就顯得稍微乏力一些。對于這種情況,大家可以參考一下以下文章:https://www.freebuf.com/articles/network/158589.htmlhttps://iassas.com/archives/ffc80a19.html一般這種情況多發生在一些大型App的關鍵業務處,如登錄、找回密碼等處。4.靶機問題(1)所有的功能點都要試試~忘記密碼處,點擊,提醒一些“巴拉巴拉”的信息。貌似這個功能點是假的~只剩下OA登錄了(正常的OA辦公系統是沒有注冊功能的)隨便用一個賬戶(如admin,123456)試試,發現多登錄幾次會提示:“登錄錯誤太頻繁,請稍后在試”,這個時候無論我們在寫什么密碼,都一個提醒。之前查看過源碼,大概意思是登錄錯誤幾次,就被拉黑了。如何繞過呢?(2)繞過登錄拉黑功能 使用任意賬戶,如(admin,123456)登錄。抓包,發現:~內容很簡單,沒有cookie~一個device(設備)的值,可以試著改一下如:將最后的數字5改成4,或者6在發包試試提示什么?密碼不對。這就是一處漏洞了,通過修改傳參繞后登錄檢測功能。補充:一般在滲透測試中,提示你登錄太頻繁的情況下,可以試著以下操作進行繞過~可以修改一下cookie~增加一個XFF值~修改一下包內傳參~傳參攜帶信息猜測解密在數據包中下方,有一些信息(一般是攜帶的賬戶,密碼等)。而且他的值是: user:YWRtaW4%3A&pass=.....到這可以對加密進行猜解一下。(3)猜解加密信息將user的值,先進行url解密,得知%3A是“ :”。正常加密中,這個 :是很罕見的。先百度一下前面的幾個字母:“YWRtaW4”,沒什么收獲,但是百度結果關鍵詞后邊有的是“ = ”試了試 YWRtaW4= 進行base64解密,直接出結果:admin //一般看到結尾是“=”的大多是base64編碼。結論:先base64加密,將“ = ”替換為“ :” //其實直接拿“ YWRtaW4:”直接進行base64解密也可以結出東西。 驗證:可以將密碼的加密值進行base64解密試試,果然也是輸出的值。這個時候就可以爆破了補充:在滲透測試過程中,base64、md5是使用的非常廣泛的,不認識的一些編碼,直接丟進去先解密試試,說不定就有驚喜。(4)base64加密的字典~將自己的常用的字典進行base64加密可以去百度、谷歌一些小腳本。如下邊php的小腳本<?php$file = fopen("1.txt","r");while(!feof($file)){echo base64_encode(fgets($file))."<br />";}fclose($file) ?>或者去一些在線網站如:https://www.sojson.com/base64.html補充:多說一句,在web測試中,字典不易過大。一般超過20M我認為都沒啥必要,或者說不及格的字典。幾個G,十幾個G的字典也僅僅在爆破SSH,3389等服務用過。大文本字典,用win自帶的notepad打開會很卡(一般超過40M就巨卡),可以去下載一些編輯器打開。~將加密后字典內容中的“=”替換為“:”(5)爆破admin賬戶~先將密碼字典進行base加密魔改。~抓取登陸包,發到burp爆破模塊。爆破選項選擇第三個 標記一個繞過登錄處,一個密碼處。//burp的四種爆破模式,大家可以去百度、谷歌一下。了解了解。第一處,選擇數字替換。進行繞過登錄限制第二處,加密魔改的base字典(6)關于cms的一些補充在滲透測試中,發現目標網站是某CMS搭建的,看看能不能自己在本機也搭建一下。一些cms的數據庫中是存在默認測試賬戶的,很多的管理員一般改密碼也僅僅將默認的admin密碼修改,對其他測試賬戶不會修改,在登錄的可以試試。另外在實際環境中,爆破admin的概率,其實不如爆破一些測試賬戶如:test、a、b、admin1、test1、ceshi、ceshi1、公司名、域名、人名等發現這個測試賬戶的存在,在爆破這些測試賬戶容易的多。(7)假設用測試登錄進去后測試一些功能點處,如打卡處:~一些框可以測試xss,多個框的情況下,可以第一個框寫alert(1)、第二個寫(2)等,方便區分哪個地方出現問題。~一些地方,可能會有前端過濾,即服務器存在xss,但是你在提交的過程中,前端進行實體化編碼等。對這種情況就要抓包,然后再數據包中將內容進行替換為彈窗語句。~在其他有框的地方也可以進行測試,每一個框都試試。比如這個打開有追加說明、催辦、評論等等處可以在插入xss語句。做滲透測試,一定要耐心,不放過任何交互點、功能點,所有的數據包都要進行測試查看。除了打卡處,還有很多功能處可以去測試,如思考:郵件處可否彈窗呢?看看通訊錄是否可越權呢?能不能對一些功能的數據包進行篡改達到低權限看到高權限的信息呢?另外如新增客戶處是否可以sql注入呢? 這些地方要想到,更要去測試。(8)App靶場的flag處,任意一個文件上傳點,上傳圖片馬。抓取返回包,發現文件保存的地址。結合數據包的其他信息,可以精確到文件的位置,這個靶場服務器是存在CGI解析漏洞的,在圖片馬后邊加 “ /.php?a=phpinfo(); ” 。 之后連接菜刀,蟻劍都行。當然,這是最簡單粗暴的,也可以測試其他的文件上傳方法。總結
以上是生活随笔為你收集整理的网络安全进阶篇(十一章-5)APP渗透测试篇(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么跑完步了膝盖会疼痛?
- 下一篇: 如何拜访客户才获得行动承诺