BugKu Web(26-35)

BugKu Web(26-35)

前言

发现以前做了几道题,然后凑成了10道写一下。确实做起来会发现和比赛的题相比质量还是要差很多。

但对于我这样的菜鸟拿来练习打打基础还是可以的

题目

  1. 过狗一句话

    1

    可以看到提示,给了一个一句话马,简化一下就是assert($_GET[‘s’])这么一个一句话

    assert没怎么用过…

    查了下可以用下面的函数来搜寻目录

    scandir() //作用能扫描文件夹下的目录和文件,返回值为所有文件名组成的一个数组

    但我执行后没反应…,因为这道题可以任意执行命令,flag也经常被人删?

    2

    可能不用再做了这句话是真的吧…

  2. 字符?正则?

    正则自己每次遇到再去查…

    3

    这里可以看到题目只要我让构造的参数能够让正则匹配的到就好了

    .代表任意字符

    *一次或多次

    {4,7}4-7次

    [a-z]范围取值

    [[:punct:]] 匹配任何标点符号

    /i 不区分大小写

    keykkeykkkkkey:/k/kkeyk?

    4

    可以看到flag出来了,这里要注意这里的2.php,不要带着2.php提交参数…

    5

  3. 前女友

    6

    进入首页,文字里没有什么有用的信息(除了PHP是世界上最好的语言,这道题应该考的是PHP…),查看源代码,可以看到一个链接,点进去,有代码

    7

    这里主要考查两个点

    1. md5不能处理数组,传入数组会返回null
    2. strcmp也是有漏洞的5.3之前版本的php,传入的期望类型是字符串类型的数据,当这个函数接受到了不符合的类型,这个函数将发生错误,但是在5.3之前的php中,显示了报错的警告信息后,将return 0

    http://123.206.31.85:49162/?v1[]=1&v2[]=2&v3[]=3

    如上构造可以得到flag

    8

    试下 字符串 240610708跟QNKCDZO,所有类似的字符串得到的md5如果是0e打头的,一些语言(PHP)会做隐式转换,当做int类型计算,得到的结果是 0,最后导致0==0,判定为true

    v1=240610708&v2=QNKCDZO&v3

    第一个绕过md5值,还有上面的另一种方法,试了下也是没问题的

    这里主要考查了md5和strcmp的一个漏洞吧,或者说巧妙的利用了PHP的一些特性

  4. login1

    这道题,有提示,sql约束攻击

    没用过,查了下基于约束的SQL攻击

    我的理解就是查询的时候尾部空格会被截断,所以’admin’与’admin ‘查出来的数据是一样的,同样在插入的时候有长度限制,会自动截断,比如限制插入长度为5,插入’admin1’,但实际插入结果却成了’admin’

    这里我们就利用这样的特点来注册用户。首先我是尝试了administrator,但提示不是管理员,然后尝试admin,注册时在admin后面加很多空格因为不知道限制的长度时多少,在最末尾再加个1,‘admin 1’,类似这样。注册成功后用admin作为用户名登陆,密码是我们刚才注册时填写的密码,这样就成功获得flag了

    9

  5. 你从哪里来

    这道题其实没什么意思啊

    10

    这道题进去后没有什么太多东西,查看源码和burp抓包都没有什么特别的地方

    然后简单看了下有没有文件泄露,也没发现

    然后就是根据它的这句话,猜想可能是需要构造Referer,然后值为google的URL就OK了

    11

    可以看到修改增加referer后就顺利的拿到了flag

  6. Md5 collision(NUPT_CTF)

    12

    这道题进去后也没什么特别的地方,看了下源码,抓抓包,都没获得有用的信息

    所以就按照提示带上参数a

    13

    随便试了几个值后发现都返回false,根据题目名md5碰撞,可以看到上面第3题也提到了md5碰撞

    字符串 240610708跟QNKCDZO,所有类似的字符串得到的md5如果是0e打头的,一些语言(PHP)会做隐式转换,当做int类型计算,得到的结果是 0,最后导致0==0,判定为true

    14

    可以看到成功得到flag,下面是在网上找的0e开头的md5和原值

    0e开头的md5和原值:

    s878926199a
    0e545993274517709034328855841020
    s155964671a
    0e342768416822451524974117254469
    s214587387a
    0e848240448830537924465865611904
    s214587387a
    0e848240448830537924465865611904
    s878926199a
    0e545993274517709034328855841020
    s1091221200a
    0e940624217856561557816327384675
    s1885207154a
    0e509367213418206700842008763514
    s1502113478a
    0e861580163291561247404381396064
    s1885207154a
    0e509367213418206700842008763514
    s1836677006a
    0e481036490867661113260034900752
    s155964671a
    0e342768416822451524974117254469
    s1184209335a
    0e072485820392773389523109082030
    s1665632922a
    0e731198061491163073197128363787
    s1502113478a
    0e861580163291561247404381396064
    s1836677006a
    0e481036490867661113260034900752
    s1091221200a
    0e940624217856561557816327384675
    s155964671a
    0e342768416822451524974117254469
    s1502113478a
    0e861580163291561247404381396064
    s155964671a
    0e342768416822451524974117254469
    s1665632922a
    0e731198061491163073197128363787
    s155964671a
    0e342768416822451524974117254469
    s1091221200a
    0e940624217856561557816327384675
    s1836677006a
    0e481036490867661113260034900752
    s1885207154a
    0e509367213418206700842008763514
    s532378020a
    0e220463095855511507588041205815
    s878926199a
    0e545993274517709034328855841020
    s1091221200a
    0e940624217856561557816327384675
    s214587387a
    0e848240448830537924465865611904
    s1502113478a
    0e861580163291561247404381396064
    s1091221200a
    0e940624217856561557816327384675
    s1665632922a
    0e731198061491163073197128363787
    s1885207154a
    0e509367213418206700842008763514
    s1836677006a
    0e481036490867661113260034900752
    s1665632922a
    0e731198061491163073197128363787
    s878926199a
    0e545993274517709034328855841020

  7. 程序员本地网站

    这道题也没什么意思,看到题目名就猜到了是加个X-Forwarded-For的头,没想到还真是,过于简单了…

    15

    X-Forwarded-For的一些知识点可以上网自行搜索下,HTTP 请求头中的 X-Forwarded-For

  8. 各种绕过

    16

    打开网页,直接给了一段代码

    这里可以看到主要是要两个参数不等但sha1值一样

    这里也和前面第3题提到过的方法一样,利用数组的方法

    17

    可以看到成功的得到了flag,这里我看到了url解码,以为要对id进行二次的url编码…这里不用二次编码…没太明白,记得以前有道题是需要的…

  9. web8

    打开之后是代码,也是代码升级

    18

    简单的看下就是要我们让ac === f就能拿到flag

    这里主要考查extract这个函数吧,它会把传入的值自动生成变量。我们传入?ac=1就会自动生成$ac=1

    后面有一个读取文件fn

    19

    然后直接访问flag.txt可以看到flags

    20

    所以我们构造payload ?ac=flags&fn=flag.txt 然后成功拿到flag

    21

    当然我看到别人的wp也有用php://input来做的

    ?ac=123&fn=php://input
    [POST]123

  10. 细心

    进入页面,如下图,提示是变成admin所以看下cookie,可以看到cookie也不能修改

    22

    所以应该不是这里改cookie,再查看下源码也没有任何发现

    然后来扫下目录,可以发现有robots.txt

    23

    进入那个页面

    24

    看到左下角的那个提示,嗯这里按照提示传入admin就ok了…

    25

发布了54 篇原创文章 · 获赞 22 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_26406447/article/details/100731107
今日推荐