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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

XCTF_Web_新手练习区:disabled_button

發布時間:2023/12/31 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XCTF_Web_新手练习区:disabled_button 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第六題:disabled_button

目標:

了解前端知識

Writeup

hackbar
瀏覽器開發者工具

Writeup

這里共有兩種方法:

方法一:

  • 打開網址,發現flag按鈕無法點擊,此時我們F12查看源代碼
  • 刪除disabled=" ",發現頁面有了變化,flag可以點擊了!!!
  • 然后我們點擊flag按鈕,出現了flag值!!!

方法二:

  • 也可以手動POST數據,首先我們觀察到表單的提交方式為POST,于是我們提交POST數據

為什么要這么提交呢?

首先我們分析一下這里核心的html代碼:

<h3>一個不能按的按鈕</h3> <form action="" method="post"> <input disabled="" class="btn btn-default" style="height:50px;width:200px;" type="submit" value="flag" name="auth"> </form>
  • action: 是規定此表單就交給那個文件執行,這里為空,咱不管它;
  • <form>標簽用于為用戶輸入創建 HTML 表單;
  • method表示請求方法,這里是POST請求;
  • <input>標簽用于搜集用戶信息;
  • disabled:disabled屬性規定應該禁用input元素,這里就是禁用包含它的input元素,這也就是點擊不了flag按鈕的原因,都禁用input標簽了,你還想點?
  • class:class屬性規定元素的類名(classname),大多數時候用于指向樣式表中的類(class)
  • btn btn-default是默認按鈕的樣式(它有很多種樣式,默認樣式是其中的一種,其實就是按鈕的形狀樣式變化,參考(https://www.runoob.com/bootstrap/bootstrap-buttons.html)
  • style:style屬性規定元素的行內樣式(inline style)
  • height:50px;width:200px;這里是規定了高和寬的像素
  • type:type屬性規定input元素的類型,可以參考(http://www.w3school.com.cn/tags/att_input_type.asp)
  • submit:定義提交按鈕,提交按鈕會把表單數據發送到服務器
  • value:value屬性為input元素設定值,參考(http://www.w3school.com.cn/tags/att_input_value.asp)
    對于不同的輸入類型,value屬性的用法也不同:
type="button", "reset", "submit" - 定義按鈕上的顯示的文本 type="text", "password", "hidden" - 定義輸入字段的初始值 type="checkbox", "radio", "image" - 定義與輸入相關聯的值
  • flag:value的值,定義按鈕上顯示的文本為flag

  • name:name屬性規定input元素的名稱
    name屬性用于對提交到服務器后的表單數據進行標識,或者在客戶端通過JavaScript引用表單數據。
    注釋:只有設置了name屬性的表單元素才能在提交表單時傳遞它們的值
    也就是表單元素中沒有name屬性,就不能將表單的值傳遞到服務器
    在這個題目里,Name屬性值為auth,也就是這個表單數據傳輸到服務器時,是以auth=表單數據進行傳輸的。通俗點講就是,服務器端接受的代碼是這樣的<?php echo $_POST["auth"]; ?>,接收表單傳來的值,php中的auth是$_POST的變量;所以只要記住,表單中name屬性值的名稱就是服務器端$_POST的變量名

  • auth:服務器端接收數據所使用的變量名

方法二的總結:這條題目最后就可以理解為一個POST提交表單,disabled使得input失效,不能點擊按鈕,按鈕的名字叫做flag,服務器接收的變量名為auth,所以我們提交一個POST請求,auth=flag。
這里我不能理解的是,我提交auth=1,和auth=2等等除了flag之外的都不能成功獲得數據,唯獨auth=flag可以,為什么呢?
我這里的猜想是可能題目設定的就是你提交flag才能查詢到數據,就好比你在一個郵箱登陸頁面輸入你的郵箱與密碼一樣,如果數據庫里沒有你的郵箱和密碼,你輸入怎么可能獲得數據呢?因此,這道題的數據庫里沒有auth=1或auth=2等等的數據。

小插曲:一開始我還在糾結是不是因為value的值,差點把我搞混了,value的值flag在type=submit下完全就是按鈕的名稱,僅此而已,和它有啥關系???它作為按鈕名是不可能在后端數據庫里被查詢的,除非…數據庫里有個數值和按鈕名(flag)重名。最后想來,還真讓我哭笑不得~~可能就是出題人想讓你POST請求auth=flag,弄個以flag為名的按鈕提示你吧。

總結

以上是生活随笔為你收集整理的XCTF_Web_新手练习区:disabled_button的全部內容,希望文章能夠幫你解決所遇到的問題。

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