<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      云曦第二次考核復現

      WEB

      EzGetFlag

      圖片

      打開是這樣一個界面
      這里去看下源代碼

      點擊查看代碼
      from flask import Flask, request
      import mysql.connector, hashlib
      
      app = Flask(__name__)
      
      # MySQL connection configuration
      mysql_host = "127.0.0.1"
      mysql_user = "ctf"
      mysql_password = "ctf123"
      mysql_db = "CTF"
      
      def authenticate_user(username, password):
          try:
              conn = mysql.connector.connect(
                  host=mysql_host,
                  user=mysql_user,
                  password=mysql_password,
                  database=mysql_db
              )
      
              cursor = conn.cursor()
      
              query = "SELECT * FROM users WHERE username = %s AND password = %s"
              cursor.execute(query, (username, password))
      
              result = cursor.fetchone()
      
              cursor.close()
              conn.close()
      
              return result  
          except mysql.connector.Error as error:
              print("Error while connecting to MySQL", error)
              return None
      
      @app.route('/login', methods=['POST'])
      def handle_request():
          try:
              username = request.form.get('username')
              password = hashlib.md5(request.form.get('password').encode()).hexdigest()
              # Authenticate user
              user_data = authenticate_user(username, password)
      
              if user_data:
                  with open('/flag', 'r') as f:
                      flag = f.read().strip()
                  return flag
              else:
                  return "Invalid credentials"  
          except:
              return "internal error happened"
      
      if __name__ == '__main__':
          app.run(host='0.0.0.0', port=5000, debug=True)
      
      

      這里可以看見就是只要我們使用admin這個賬戶登錄進去就可以得到flag

      然后還有一個db文件

      圖片

      這里可以看見他插入了admin這個用戶

      后面按那一串是密碼

      但是這個是經過加密的
      這個在另一個文件里

      圖片

      這個是被經過md5加密的當時隨手一猜就是admin

      圖片

      這里可以記一下21232f這個md5加密可以說是admin的特征

      但是我們登錄的時候就可以發現

      圖片

      這里只能使用本地來登錄,但是這里使用XFF這些沒有用

      去看邏輯

      圖片

      這里是php代碼的邏輯

      這里我們要了解一個都行叫做php參數污染
      其實就是HTTP參數污染

      這里先放圖

      up0suavanp

      這里就可以這么理解
      我傳入兩個參數到php/Apache服務器里
      比如?par=1&par=2

      他最后接受的參數是2

      但是最后返回flag的代碼又是flask的框架

      而對于Flask他接受的是第一個參數

      所以這里我們可以繞過之后讓flask接受第一個參數

      username=admin&username=1&password=admin&login-submit=

      直接傳參

      圖片

      posted @ 2025-10-14 23:07  crook666  閱讀(7)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 性做久久久久久久| 国产成人a在线观看视频免费| 一级做a爰片在线播放| 2019久久久高清日本道| 成全我在线观看免费第二季| 国产网友愉拍精品视频手机| 色翁荡熄又大又硬又粗又视频| 日韩亚洲精品国产第二页| 亚欧成人精品一区二区乱| 综合久久婷婷综合久久| 久久婷婷成人综合色综合| 国精品午夜福利视频不卡| 久久国产成人亚洲精品影院老金| 仁怀市| 国产在线精品一区二区三区不卡| 国产99青青成人A在线| 高清精品一区二区三区| 国产欧亚州美日韩综合区| 国产一区二区精品久久呦| 武装少女在线观看高清完整版免费| 欧美性猛交xxxx乱大交极品| 黄色亚洲一区二区在线观看| 亚洲高清国产拍精品熟女| 成人3d动漫一区二区三区| 久久国产热这里只有精品| 天美传媒xxxxhd videos3| 久久久亚洲欧洲日产国码αv| 一级女性全黄久久片免费| 亚洲高清免费在线观看| 日韩内射美女人妻一区二区三区| 精品自拍自产一区二区三区| 免费国产好深啊好涨好硬视频| 日本一卡2卡3卡四卡精品网站| 韩国深夜福利视频在线观看| 亚洲欧美日韩综合久久| 亚洲国产欧美在线看片一国产| 国产视频精品一区 日本| 92国产精品午夜福利免费| 99视频在线精品国自产拍| 国产国拍亚洲精品永久软件 | 利津县|