当前位置: 首页 > news >正文

202105_风二西_SQL基于时间盲注

Tags:流量分析,SQL注入,基于时间盲注,蚁剑AntSword

0x00. 题目

附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件

附件名称:202105_风二西_SQL基于时间盲注.zip

0x01. WP

1. 浏览流量包,发现大量SQL注入请求

从语句上来看是基于时间的盲注,主要针对login.php页面

image

2. 提取过滤表达式,找出响应时长异常的响应包

根据响应时长整理过滤语句((http.time >= 3)) && (http.response_for.uri == "http://192.168.61.140/login.php")

image

3. 通过请求包FrameNo找到对应响应包并进行解码

利用python脚本来协助筛选,得到残缺的flag内容为backd00r.php_aaaflag{a3eb0ff8

import pyshark
import re  # 新增正则模块strTsharkPath = "D:\\=Green=\\Wireshark\\App\\Wireshark\\"
strCapPath = ".\\20210514_ctf.pcapng"# ------------------------------------ PART 1: 匹配延迟较高的请求并记录请求帧号 ------------------------------------
filter_slow = '((http.time >= 3)) && (http.response_for.uri == "http://192.168.61.140/login.php")'
lstFrameNo = []# 第一次读取:找到高延迟的响应包,记录对应的请求帧号
with pyshark.FileCapture(strCapPath, display_filter=filter_slow, tshark_path=strTsharkPath) as cap:for pkt in cap:print(f"\rProcessing frame: {pkt.number}", end="")# http.request_in 表示请求所在的帧号lstFrameNo.append(pkt.http.request_in) 
print("\n")
# ------------------------------------ PART 2: 根据帧号提取POST请求中的注入语句 ------------------------------------
filter_post = 'http.request.uri == "/login.php" && http.request.method == "POST"'
ascii_values = []  # 存储提取的ASCII值# 第二次读取:直接根据帧号提取POST请求
with pyshark.FileCapture(strCapPath, display_filter=filter_post, tshark_path=strTsharkPath) as cap:for pkt in cap:if pkt.number in lstFrameNo:for layer in pkt.layers:if layer.layer_name == "urlencoded-form":payload = layer.value# 使用正则提取 payload 中的 ASCII 值(形如 =112,sleep)match = re.search(r'=(\d+),\s*sleep', payload)  # 允许空格和格式变化if match:ascii_value = int(match.group(1))ascii_values.append(ascii_value)print(f"提取到ASCII值: {ascii_value} -> 字符: {chr(ascii_value)}")# ------------------------------------ 结果输出 ------------------------------------
# 将所有 ASCII 值转换为字符串
final_flag = ''.join([chr(v) for v in ascii_values])
print(f"\n最终字符串: {final_flag}")
# 最终字符串: backd00r.php_aaaflag{a3eb0ff8

image

4.根据上一步提示信息,追踪后门流量

过滤表达式http.request.full_uri == "http://192.168.61.140/backd00r.php",从请求来看符合蚁剑Antsword特征

image

逐步追踪分析,发现有两次请求涉及flag

image

@ini_set("display_errors", "0");
@set_time_limit(0);
function asenc($out){return $out;};
function asoutput(){$output=ob_get_contents();ob_end_clean();echo "f359f";echo @asenc($output);echo "b616dec";
}
ob_start();
try{$F=base64_decode(substr($_POST["bd6d05dc659984"],2));$P=@fopen($F,"r");echo(@fread($P,filesize($F)?filesize($F):4096));@fclose($P);;
}
catch(Exception $e){echo "ERROR://".$e->getMessage();};
asoutput();
die();

image

@ini_set("display_errors", "0");
@set_time_limit(0);
function asenc($out){return $out;};
function asoutput(){$output=ob_get_contents();ob_end_clean();echo "0ab057df6";echo @asenc($output);echo "1f1366c3";
}
ob_start();
try{echo @fwrite(fopen(base64_decode(substr($_POST["bd6d05dc659984"],2)),"w"),base64_decode(substr($_POST["r1f3cfb72759db"],2)))?"1":"0";;
}
catch(Exception $e){echo "ERROR://".$e->getMessage();};asoutput();die();

从代码来看前一请求应该是真实的,结合脚本对返回内容进行解码

@ini_set("display_errors", "0");
@set_time_limit(0);
function asenc($out){return $out;};
function asoutput(){$output=ob_get_contents();ob_end_clean();echo "f359f";echo @asenc($output);echo "b616dec";
}
ob_start();
try{$F=base64_decode(substr($_POST["bd6d05dc659984"],2));$P=@fopen($F,"r");echo(@fread($P,filesize($F)?filesize($F):4096));@fclose($P);;
}
catch(Exception $e){echo "ERROR://".$e->getMessage();};asoutput();die();// f359fSlJMVktNQ09OSlJYSVRTVUlGNUU0MkpRR05NWFUzREpKUktFU05DT0dKTVRFVDJFS0UyRlVSQ1dOVkdUR01CNQ==
// ==截去5位随机字符==> SlJMVktNQ09OSlJYSVRTVUlGNUU0MkpRR05NWFUzREpKUktFU05DT0dKTVRFVDJFS0UyRlVSQ1dOVkdUR01CNQ==
// ==Base64_decode==> JRLVKMCONJRXITSUIF5E42JQGNMXU3DJJRKESNCOGJMTET2EKE2FURCWNVGTGMB5
// ==Base32_decode==> LWU0NjctNTAzNi03YzliLTI4N2Y2ODQ4ZDVmM30
// ==Base64_decode==> -e467-5036-7c9b-287f6848d5f3}

步骤2中组合后得到完整flag为flag{a3eb0ff8-e467-5036-7c9b-287f6848d5f3}

http://www.wxhsa.cn/company.asp?id=3305

相关文章:

  • 实用指南:【C++】list容器的模拟实现
  • windows系统缺失DLL库文件下载方法
  • 更为通用的决策单调性
  • 一文读懂 PHP PSR 接口 PSR-3、PSR-7、PSR-11、PSR-15 完整指南
  • 2025模拟赛Round9
  • NOIP2025模拟赛19
  • Qt/C++开发监控GB28181系统/公网对讲/代码实现28181语音对讲/采集本地麦克风数据/支持udp和tcp模式
  • P3195 [HNOI2008] 玩具装箱 (斜率优化)
  • DBeaver使用指南
  • sh-2025模拟赛
  • C++ day7 - 指南
  • 读人形机器人11娱乐领域
  • Java 注解机制全解析:原理、用途与框架中的实战
  • 模板集
  • 暑假
  • 做题记录
  • 课程助教工作总结
  • 6G 驱动的智慧城市新格局
  • SHA-1 证书淘汰警告:网站管理员需紧急验证TLS安全性
  • 数字孪生在制造业中的应用
  • device第一周个人作业
  • Java 在移动开发与跨平台应用中的应用
  • 5G 技术与远程教育
  • 5G 技术在工业互联网的应用
  • 一键部署ftp脚本
  • PySimpleGUI安装4.60.5老版本安装教程!
  • PySimpleGUI-免注册版本
  • 高三闲话 #1
  • 三大免费CDN推荐:安全防护强、稳定性卓越、加载飞速,长期使用超安心
  • PySimpleGUI 开始注册了,怎样能免注册使用早期版本?