【20171025早】alert(1) to win 练习
? 本人黑絕樓,自稱老黑,男,25歲,曾經在BAT工作過兩年,但是一直都是底層人員,整天做重復性工作,甚敢無趣,曾和工作十年之久的同事聊天,發現對方回首過往,生活是寡淡如水,只有機械性工作。旋即老黑毅然決然辭職,現賦閑在家,打算從軟件開發工程師轉為安全研究,開這個博客記錄平生,以饗各位看官。
? 老黑我無房,無車,無女友,身高一米七七,微胖,為計算機奮斗了四五年,可惜進步甚微,現決心發憤圖強,在未來的七八個月里做最后的掙扎,不成功便安心結婚生子,隨了父母的心愿。:)
? 人生處處都是選擇,做出正確的選擇才能謀取更大的局面。
? 開篇第一章,2017年10月25日早上7點起床,寫了一章小說發到了起點網上,然后開始研究安全,呵呵。
? 網上安全研究的網站,文章,課題這么多,該將有限的時間用在哪個身上呢?
? i春秋,知道創宇技能表,還是直接在補天上挖漏洞?
? 選擇知道創宇的技能表,視頻太浪費時間了,文字和實戰是首選,視頻能不看就不看。
? XSS 練習網站?
? https://alf.nu/alert1
? 第三題
function escape(s) {s = JSON.stringify(s);return '<script>console.log(' + s + ');</script>'; }目的是構造可執行alert(1)命令是s字符串,顯示到頁面是
<html> <head></head> <body> <script>console.log("s")</script> </body> </html>TRY:
1. 輸入 ") 打算封閉log的函數,可是s經過了JSON.stringify()特殊處理,輸入的 " 變成 \" 無法封閉log函數,打算查看JSON.stringify()有什么可以突破的地方,最后發現沒有。
2. 簡單粗暴的閉合<script>標簽,直接構造新的。輸入 </script><script>alert(1)</script>,OK!
??
? 回過頭仔細查看了下JSON的stringify函數是要對特殊字符進行轉義的像 ",\ 等,以便正確讀取完整的s字符串,所以第一種嘗試是不成功的,顯而易見,如果連完整的字符串都讀取不完整的話,開發人員早就不使用這種函數了。
?
第四題
function escape(s) {var url = 'javascript:console.log(' + JSON.stringify(s) + ')';console.log(url);var a = document.createElement('a');a.href = url;document.body.appendChild(a);a.click(); }TRY:
1. 不能像第三題一樣,閉合<script>,輸入的內容都會套在可惡的雙引號里邊,結合外部代碼,發現是一個url,通過提前對被轉義的 " URL編碼,嘗試閉合log函數,輸入
%22);alert(1)// 嘗試成功!原理:輸入的字符串 -> URL編碼 -> 到服務器后解析 -> 實現目的
? 參考:
https://my.oschina.net/heweipo/blog/395884
http://www.cnblogs.com/liuhongfeng/p/5006341.html
http://blog.sina.com.cn/s/blog_95c8f1ac010198j2.html
?
??
總結
以上是生活随笔為你收集整理的【20171025早】alert(1) to win 练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 惊现神作!!!
- 下一篇: 【20171025中】alert(1)