首页 > Web开发 > 详细

bugku论剑场web解题记录

时间:2019-10-06 21:39:26      阅读:207      评论:0      收藏:0      [点我收藏+]

前言

国庆这几天感觉没什么好玩的地方,家又离的太远,弱鸡的我便决定刷刷题涨涨知识,于是就有了这篇文章。。

 

正文

写的不对的地方欢迎指正

 

web26

打开直接就是代码,这应该就是一道代码审计的题了

技术分享图片

 

 这里主要需要绕过第一个正则匹配,同时要令$result为真就能得到flag了

\d+匹配多个数字字符
s 特殊字符圆点 . 中包含换行符
D 如果使用$限制结尾字符,则不匹配结尾换行;(详细可百度正则表达式修饰符)
 
这里的/\d+/sD是用来匹配数字,只需字符串就可以绕过
 
is_numeric() 函数用于检测变量是否为数字或数字字符串。
如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE。
 
注意
运算符=(且等号是右联,即右边等于左边)优先于and,即程序执行时会先执行等号在执行and
技术分享图片

构造?str=a&num=1

技术分享图片

 

 

web1

技术分享图片

 

 

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

 

isset() 函数用于检测变量是否已设置并且非 NULL。

如果已经使用 unset() 释放了一个变量之后,再通过 isset() 判断将返回 FALSE。
若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。
同时要注意的是 null 字符("\0")并不等同于 PHP 的 NULL 常量。
PHP 版本要求: PHP 4, PHP 5, PHP 7
技术分享图片

注意:如果$a=‘‘,还是会返回ture

extract()会覆盖已有变量
 
file_get_contents()
技术分享图片

当它读取不存在的文件时会报错,返回空值,但是程序会继续往下执行(直接读取字符串也返回空值)

 

于是构造?a=

 

web9
提示
技术分享图片
 
这里需要用到RESTful API的put方法
命令行执行curl -X PUT -d "bugku" http://123.206.31.85:3031/
-X指定请求方式 -d 接传入的数据
然后解密即可
 
RESTful API简单介绍
1. REST 是Repersentational State Transfer的缩写
直接翻译的意思是"表现层状态转化"。
  它是一种互联网应用程序的API设计理念:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。
URI
  即统一资源标识符,服务器上每一种资源,比如文档、图像、视频片段、程序 都由一个通用资源标识符(Uniform Resource Identifier, 简称"URI")进行定位。
HTTP动词
  常用的HTTP动词有下面五个
      • GET(SELECT):从服务器取出资源(一项或多项)。
      • POST(CREATE):在服务器新建一个资源。
      • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
      • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
      • DELETE(DELETE):从服务器删除资源。
3. 对资源的增删改查对应URL的操作(POST,DELETE,PUT,GET)
  RESTful架构
  服务器上每一种资源,比如一个文件,一张图片,一部电影,都有对应的url地址,如果我们的客户端需要对服务器上的这个资源进行操作,就需要通过http协议执行相应的动作来操作它,比如进行获   取,更新,删除。
    简单来说就是url地址中只包含名词表示资源,使用http动词表示动作进行操作资源
  举个例子:
  GET /blog/Articles 获取所有文章
  POST /blog/Articles 添加一篇文章
  PUT /blog/Articles 修改一篇文章
  DELETE /blog/Articles/1 删除一篇文章
RESTful API示例(2)
下面举几个RESTful API的例子,假设下面是一个学校学生信息的项目
  • 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的学生的家庭信息
登录/注销该怎么设计API呢?
思考一下,我们登录,肯定是为了登录后做某些操作,实际上就是向服务器请求一些授权。那么注销呢,就是请求服务器删除这个授权。所以不难理解:
POST /teacher 登录
DELETE /teacher 注销
URI命名总结规律就是:
/资源名称
/资源名称/{资源ID}
/资源名称/{资源ID}/子资源名称
/资源名称/{资源ID}/子资源名称/{子资源ID}
 

web2

技术分享图片

 

 

 每次访问式子都不一样,这里要用到脚本了

技术分享图片

 

 

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)

 

web6

技术分享图片

看到本地,于是伪造本地登陆

X-Forwarded-For:127.0.0.1
技术分享图片

在访问

技术分享图片

查看源码

技术分享图片

 

 解码test123

再登录就可以看到flag

xff简单介绍

X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。通俗来说,就是浏览器访问网站的IP。
X-Forwarded-For: client1, proxy1, proxy2, proxy3
左边第一个是浏览器IP,依次往右为第一个代理服务器IP,第二个,第三个(使用逗号+空格进行分割)(因此在代码中获取XFF 头信息中的第一个元素即为真实客户端IP)
 
很多系统简单的获取XFF头中定义的IP地址设置为来源地址,进行访问控制,攻击者可以篡改HTTP请求包中XFF项进行IP地址伪造。
 
利用方式
可以通过专门的抓包改包工具或者浏览器插件或者使用脚本语言构造headers参数
 
web3
技术分享图片

 

 以为是文件上传之类的

上传php出现
技术分享图片

估计用了白名单

上传png出现

 技术分享图片

说是尺寸不符

改了图片尺寸后出现(无法加载)
技术分享图片

于是在传一个正常可以加载的png图片马,成功

技术分享图片

 

点击可以view看到绝对路径

http://123.206.31.85:10003/uploads/5c1516df1ae918f9b79657437cafa780b746d843.png

尝试包含http://123.206.31.85:10003/?op=uploads/5c1516df1ae918f9b79657437cafa780b746d843.png

却反回没有这个界面

然后就有点懵。。。

 

后来发现的确是个文件包含,但它是结合文件读取来拿flag
通过php://filter协议来查看源文件内容
php://filter/convert.base64-encode/resource=flag
就能得到flag
 
web4
看到登录框
首先尝试各种弱口令无果,判断sql注入也没有任何回显
再尝试万能密码
这里是通过闭合够造的万能密码,注入点在password处,用户名随便(估计sql语句只用到了password)
‘ or ‘1‘=‘1
登陆成功后,直接返回flag
 
web11
看到页面名有robots
于是访问
在访问shell.php
截取某个值md5加密后的前6位相等才会返回flag
无法找到后面的值是怎么生成的(每次刷新都不一样)
看大佬文章说是可以爆破(通常题目不会太难我们可以纯数字爆破,难一点的应该会有提示)
于是脚本爆破
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

 

技术分享图片

 

 

 
持续更新中~~~

 

bugku论剑场web解题记录

原文:https://www.cnblogs.com/lceFIre/p/11628512.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!