首页
壁纸sharing
留言Board
About
推荐
百度
谷歌
chatGPT
Search
1
行业赛-数据安全之可疑日志分析一
14 阅读
2
解决windows环境下不能安装python扩展出现error: Unable to find vcvarsall.bat
9 阅读
3
windows下创建python2环境
6 阅读
4
windows环境下安装Crypto
4 阅读
5
PHP输出打印变量和字符串的几种方法
4 阅读
默认分类
技术分享
安全漏洞分析
CTF技巧
网络运维
window技巧
前端开发
心得体会
资源分享
工具分享
CTFgame
疑难杂症
编程学习
python学习
PHP学习
软件安装与更新
python package
登录
/
注册
Search
标签搜索
国产系统
bclinux
python2.7
日志分析
隐藏文件
binwalk
foremost
CTF
内存镜像分析
volatility工具
linux系统
环境变量
ctf_web
kali linux
虚拟环境
python扩展包
攻击溯源
Crypto
pycryptodome
加解密
小星日记
累计撰写
30
篇文章
累计收到
45
条评论
首页
栏目
默认分类
技术分享
安全漏洞分析
CTF技巧
网络运维
window技巧
前端开发
心得体会
资源分享
工具分享
CTFgame
疑难杂症
编程学习
python学习
PHP学习
软件安装与更新
python package
页面
壁纸sharing
留言Board
About
推荐
百度
谷歌
chatGPT
搜索到
1
篇与
的结果
2023-12-27
行业赛数据安全之可疑日志分析二
行业赛数据安全之sql盲注日志分析问题描述某公司的数据安全工程师对近期信息系统的部分日志进行分析时,发现公司生产区内网的某终端主机可能被黑客远程控制,且黑客从该终端主机上获取了公司员工的关键个人信息。现请你协助该数据安全工程师开展日志分析,从中找到被控制的内网终端主机ip和被泄露的关键个人信息中“luodexin”的身份证号码。2.请找到泄露出来的“luodexin”的身份证号码。使用32位小写md5进行加密处理,提交格式为flag{md5(xxxx)}。日志示例见之前博客](https://liuxuxing.eu.org/index.php/archives/7/))知识点日志分析,sql盲注分析,python脚本WP查看日志发现存在url编码,使用cyberchef的url decode后得到如下sql布尔盲注日志示例。10.112.16.207 - - [17/Nov/2023:03:45:42 0000] "GET /?username=1' or ascii(substr((database()),1,1))>79#&password=1 HTTP/1.1" 200 862 "-" "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"10.112.16.207 - - [17/Nov/2023:03:45:42 0000] "GET /?username=1' or ascii(substr((database()),1,1))>103#&password=1 HTTP/1.1" 200 862 "-" "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"10.112.16.207 - - [17/Nov/2023:03:45:42 0000] "GET /?username=1' or ascii(substr((database()),1,1))>115#&password=1 HTTP/1.1" 200 875 "-" "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"10.112.16.207 - - [17/Nov/2023:03:45:42 0000] "GET /?username=1' or ascii(substr((database()),1,1))>109#&password=1 HTTP/1.1" 200 862 "-" "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"10.112.16.207 - - [17/Nov/2023:03:45:42 0000] "GET /?username=1' or ascii(substr((database()),1,1))>112#&password=1 HTTP/1.1" 200 875 "-" "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"10.112.16.207 - - [17/Nov/2023:03:45:42 0000] "GET /?username=1' or ascii(substr((database()),1,1))>111#&password=1 HTTP/1.1" 200 862 "-" "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"10.112.16.207 - - [17/Nov/2023:03:45:42 0000] "GET /?username=1' or ascii(substr((database()),2,1))>79#&password=1 HTTP/1.1" 200 862 "-" "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"10.112.16.207 - - [17/Nov/2023:03:45:42 0000] "GET /?username=1' or ascii(substr((database()),2,1))>103#&password=1 HTTP/1.1" 200 875 "-" "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"编写python脚本提取盲注字符和盲注响应,存在862和875两个响应,使用假设法来判断哪个响应码对应猜测肯定值,猜测的最后一个否定值就是本次盲注的正确值。比如假设862正确,那么875错误,大于79为正确,那么大于115可能正确或错误,无法确定响应值;可以反向思考,若875正确,那么862错误,大于115正确,那么大于79肯定正确,出现矛盾,因此862为正确响应值,875为错误响应值。选择每次盲猜字符的最后一次错误猜测ASCII码为本次盲猜的正确字符。比如第一个盲注字符正确值为最后一个875,即112为正确字符。使用正则表达式匹配相应格式并且提取字符,下面盲注示例为提取username和idcard,为题意要求查看"GET /?username=1' or ascii(substr((select group_concat(id,0x7e,username,0x7e,idcard) from person_data),1,1))>79#&password=1 HTTP/1.1" 200 875 "-"# 使用正则表达式提取指定位置的字符 import re # 读取日志文件 file_path = r'access.log' with open(file_path, encoding="utf-8") as f: data = f.read() # 将盲注成功的字符全部提取出来 res = "" # 进行规则匹配,盲注字符个数为变量,可以使用循环变量表示,查看日志盲注了210个字符关于username和idcard for i in range(1,210): # .*表示任意字符,{i}表示循环变量,(.*?)表示要提取的字符,若要精确提取,这三种类型的前后字符一定要精确限定 r_list = re.findall(rf'idcard.*,{i},1))>(.*?)#&password=1 HTTP/1.1" 200 (.*?) "') # 对某个盲注字符的猜测情况筛选出盲注成功值 for r in r_list: # 找到最后一个875,赋予tmp,走完循环即可依次覆盖直到为最后一个值 if r[1]='875': tmp = r[0] res += chr(int(tmp)) # 打印出所有字符 print(res) ''' 1~lisi~964049202010300068,2~chuyulong~033942199810100970,3~liaosu~167720198005111326,4~luodexin~405783201705273930,5~zhangsan~549850197211299552,6~changweiran~554427199908295915,7~liumangxin~341708201408281571 '''可以得到luodexin身份证号,再计算md5值即可得到flag
2023年12月27日
1 阅读
0 评论
0 点赞