.htaccess 和 .user.ini的使用方法

htaccess的使用方法,首先这个是用于文件上传时用的,当图片码上传成功,然后改文件后缀时行不通的时候,可以尝试的方法。

首先呢,这个是得先上传一个图片,然后再把图片码里面的内容删掉,换成htaccess的内容,文件名也要改成.htaccess。

例子:[MRCTF2020]你传你🐎呢

 一句话木马上传成功之后,就把一句话木马删掉,换成htaccess里面的内容,然后上传,上传成功后访问原来上传图片的网址就行了。

 访问原来上传图片的网站用蚁剑连就可以拿到flag了。

[GXYCTF2019]BabyUpload

新类型的htaccess的题目,过滤了png,只能用jpg,而且jpg的图片码还不行,必须得后缀为jpg,里面的内容为一句话木马,不能包含图片的内容。

然后其他过程和上面的htaccess的操作一样,先上传了一个后缀为jpg的一句话木马,然后在修改里面的内容和文件名,最后访问刚开始上传的jpg图片的上传地址就行,这道题和上面那道题很像,都是图片码用不了,只能直接上传后缀为jpg  or  png的一句话木马。

目录

2..user.ini


2.  .user.ini

应用场景

  • 服务器脚本语言为PHP,并且使用CGI/FastCGI模式,php版本>5.3.0

  • 上传目录下要有可执行的php文件

.user.ini,它会影响php.ini中的配置,从而将指定的文件内容按php来解析,影响的范围该文件所在的目录以及子目录。需要等待php.ini中的user_ini.cache_ttl设置的时间或重启Apache才能生效,且只在php5.3.0之后的版本才生效。.user.ini.htaccess用的更广,不管是nginx/Apache/IIS,只要是以fastcgi运行的php都可以用这个办法。如果使用Apache,则用.htaccess文件有同样的效果。

注意:.htaccess只能用于Apache。

php.ini中,有两个新的INI指令

; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"
; 用户自定义的php.ini文件的名字,默认是.user.ini
user_ini.filename = ".user.ini"
​
; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
; 重新读取用户INI文件的时间间隔,默认是300秒(5分钟)
user_ini.cache_ttl = 300

大致意思是:我们指定一个文件(如,xxx.jpg),那么该文件就会被包含在要执行的php文件中(如index.php),类似于在index.php中插入一句:require(./xxx.jpg);

这两个设置的区别只是在于auto_prepend_file是在文件前插入;auto_append_file在文件最后插入(当文件调用exit()时该设置无效)。

利用方法:

可以上传一个这样的.user.ini

auto_prepend_file = xxx.jpg

然后再上传一个图片马xxx.jpg

<script language='php'>system('whoami');</script>

如果在上传目录中还有一个可执行的php文件,访问php文件,就达到了执行系统命令的效果。

总结一下:上传目录中有一个可执行的php文件,我们先上传一个.user.ini文件,这个文件的内容为auto_prepend_file=xxx.jpg。起到的作用相当于在可执行的php文件前插入图片马中的内容。然后图片马中的恶意代码也会被当做PHP解析。

例子:   [SUCTF 2019]CheckIn

 先上传了个图片码(这道题把<?过滤了,得换另一种形式的一句话木马传上去)。

上传成功后,就把里面的内容删掉,换成.user.ini里的内容,因为这道题里面有个检测文件类型的函数,就不能干上传.user.ini,得伪造上传,就把.user.ini变成一个图片的格式来上传。

伪造上传成功,直接读

  uploads/c47b21fcf8f0bc8b3920541abd8024fd

因为.user.ini的特殊性,后面不需要加文件的名字,这就是和.htaccess的差别

 然后用蚁剑连接,就可以拿到flag了。

以上就是htaccess和user.ini的用法,在图片码不可用的时候就用这两种的其中一种,.htaccess优先,其次到user.ini  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值