BUUCTF awdp加固题
两道awdp-web加固题
[Ezsql]
1.break
首先进入靶机web页面
猜了弱口令都不对,尝试sql万能密码成功登录
|
|
题目要求对页面存在的sql注入漏洞进行加固,即可取得flag
2.fix
根据题目给的地址端口以及用户名,ssh连接至靶机,进入/var/www/html/目录
在此处新建一个phpinfo.php并写入语句
|
|
访问phpinfo.php可以看到当前php版本为7.3.18
php中防止sql注入的函数无非就那么几个:(我所知道的)
addslashes()
mysql_real_escape_string() 在php5.5中已经弃用,并在php7中被删除
mysql_escape_string() PHP 4 >= 4.0.3, PHP 5
在PHP7中,能用的只有addslashes()
故应在index.php中添加以下代码
|
|
添加在此处:
随后进入check服务器/check目录进行check
通过之后访问/flag得到flag字符串
[babypython]
1.break
进入靶机web页面,是个上传界面,经过尝试后发现只能上传zip文件,猜测是通过上传软链接的压缩包来读取相关信息(压缩一个软链接,类似于windows下的快捷方式,然后网站后台会解压读取该软链接指向的服务器上的文件,就能达到读取任意文件的效果。)
在Linux环境下:
|
|
生成了一个读取**/etc/passwd的zip软链接 随后上传我们得到的压缩包passwd.zip便可以在web页面看到回显的passwd文件信息
再来读取下app/uwsgi.ini
uWSGI是一个Web应用服务器,它具有应用服务器,代理,进程管理及应用监控等功能。它支持WSGI协议,同时它也支持自有的uWSGI协议
读一下**/app/main.py**
最终找到源码文件:/app/y0u_found_it/y0u_found_main.py
|
|
通过读/sys/class/net/eth0/address
文件得到mac地址,于是构造软链接、生成zip、上传看返回结果。
然后就是把mac地址处理下,转换成二进制,然后设置成seed,生成一下KEY
|
|
得到KEY:68.61339598479617
同时根据页面提示,只有admin才能获得flag,尝试通过伪造session来伪造admin身份用flask-session-cookie-manager伪造session
|
|
得到session:eyJ1c2VybmFtZSI6ImFkbWluIn0.ZIyJeg.8rUFY72cFh1JQAALMZKX79N3j2w
2.fix
。。。。。