小迪安全17-21集重要知识点

sql注入
#加解密,二次,DNSlog 注入
加解密:在注入时通常把注入语句修改为对应的加密形式 因为在php源代码中有解密的操作 然后才带入数据库进行查询
二次注入:
二次注入一般是用于白盒测试、黑盒测试就算是找到注入也没办法攻击。
 
0
#堆叠查询注入 只有部分数据库支持
堆叠注入一般用于插入到管员下的表中 管员的密码加密了 无法解密 进行自定义插入数据后 可用自身自定义的账号密码登录--也是管员身份
Stacked injections(堆叠注入)从名词的含义就可以看到应该是一堆 sql 语句(多条)一起执行。而在真实的运用中也是这样的, 我们知道在 mysql 中, 主要是命令行中, 每一条语句结尾加; 表示语句结束。
这样我们就想到了是不是可以多句一起使用。这个叫做 stacked injection。
#phpstudy+safedog 安装找不到服务解决
#市面上常见的 waf 产品列表分析-wafw00f
#部分 bypass sqlinject payload
id=1 union /*%00*/ %23a%0A/*!/*!select 1,2,3*/;%23
id=-1 union/*%00*/%23a%0A/*!/*!select%201,database%23x%0A(),3*/;%23
id=-1%20union%20/*!44509select*/%201,2,3%23
id=-1%20union%20/*!44509select*/%201,%23x%0A/*!database*/(),3%23id=1/**&id=-1%20union%20select%201,2,3%23*/
id=-1 %20union%20all%23%0a%20select%201,2,3%23
id=-1 %20union%20all%23%0a%20select%201,%230%0Adatabase/**/(),3%23
在绕过安全狗的测试中 可将联合查询写为 union %23a %0a select 1,2,3--%23为# %0a为换行符
相当于 union #a 防止安全狗还检测#后面的语句 写一个a干扰
select 1,2,3
根据下图 可进行参数污染 例如:?id=1&id=2 php+apache 获取参数执行时执行后面的值 结果就是2
0
0
在sqlmap中自带一个字典 伪造user-agent信息 绕过WAF --random-agent 自动把数据包中的User-agent改掉
为了防止waf拦截的方法:1.爬虫 把User-agent改为搜索引擎的信息
2.延时注入:delay x 隔几秒发一个数据包
3.修改user-agent: --random-agent 自动把数据包中的User-agent改掉 也可以自定义User-agent=“”
%23x%0aunion%23x%0Aselect%201,2,3
%20union%20/*!44509select*/%201,2,3 --版本号绕过 /*!xxxxxselect*/ 意思就是mysql版本号大于4.4.509的执行语句 否则不执行
%20/*!44509union*/%23x%0aselect%201,2,3
id=1/**&id=-1%20union%20select%201,2,3%23*/
%20union%20all%23%0a%20select%201,2,3%23
文件上传
危害:上传网站后门,获取当前网站的权限,属于高危漏洞。
如何查找和判断漏洞:
1.黑盒查找:通过工具扫描网站敏感文件、路径,以期获得文件上传地址。或者通过类似于会员中心的上传图片功能进行漏洞测试。网站后台也有上传功能(后台权限不等同于网站权限)。
2.白盒测试:审计代码,寻找上传漏洞。
通过抓包、上传等操作判断漏洞是否有效。
需要注意的地方:判断上传漏洞的类型。
Finecms漏洞:在上传图片时 抓包改掉格式 显示上传错误 其实上传上去了 只是你不知道 uid用户头像地址
0
%00 0x00 区别一个写在get 一个写在post get
0
0
0
0
0
文件上传常见验证:
后缀名,类型,文件头等
后缀名:黑名单:明确不允许上传的文件后缀(不是这些后缀的都可以) 例如:php asp jsp...
白名单:明确允许上传的文件后缀(满足这些后缀的可以) 例如:png zip jpg...
文件类型:MIME 信息 content-Type称为MIME信息 对应filename显示的格式
0
文件头:内容头信息
0
0
简要上传表单代码分析解释
在PHP中,文件上传功能的实现步骤:
(1)在网页中上传表单,单击“上传”按钮后,选择的文件数据将发送到服务器。
(2)用$_FILES获取上传文件有关的各种信息。
(3)用文件上传处理函数对上传文件进行后续处理。
若文件上传域的name属性值为upfile,则可以使用$_FILES['upfile']访问文件的有关信息。
$_FILES['upfile']['name']; //客户端上传文件的原名称,不包含路径
$_FILES['upfile']['type']; //上传文件的MIME类型  
$_FILES['upfile']['tmp_name']; //已上传文件在服务器端保存的临时文件名,包含路径
$_FILES['upfile']['error']; //上传文件出现的错误号,为一个整数
$_FILES['upfile']['size']; //已上传文件的大小,单位为字节
表单中的name和$_FILES中upfile需要一致
0
演示案例:
 uploadlabs 关卡分析
trim() 函数移除字符串两侧的空白字符或其他预定义字符。
str_ireplace() 函数替换字符串中的一些字符(不区分大小写)。
substr() 函数返回字符串的一部分。
strrpos() 函数查找字符串在另一字符串中最后一次出现的位置。
strtolower为转换为小写 把截取到的后缀转化为小写
trim为文件名首尾去空格
deldot为删掉末尾的点
strrchr为截取从.开始后面的内容 用于方便判断后缀 --从文件命名的最后面往左找点 找到后截取点后面的内容
 
 
posted @ 2023-07-18 23:23  李俊涛  阅读(21)  评论(0编辑  收藏  举报