DoraBox sql注入&文件上传
SQL注入
1.sqli数字型
判断是否存在注入点,执行1 and 1=1,有回显判断存在注入点
判断字段数,执行1 order by 3以及执行1 order by 4时报错,判断字段数为3
判断具体回显位,执行-1 union select 1,2,3
判断数据库名和当前用户名,执行-1 union select 1,database(),user()
执行 -1 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3
得到表名
执行 -1 union select 1,(select group_concat(column_name) from information_schema.columns where table_name='news'),3
得到表news的字段
执行 -1 union select 1,(select group_concat(title) from news),3
得到字段title下的数据
2.sqli字符型
ppps,字符型顾名思义,就是SQL语句中值读取为字符
补充以下:
判断是否存在注入点,执行1,然后执行1'(出现报错),再执行1'#,如下
余下和第一题一样,只是注意(#)
3.sqli搜索型
搜索型,没听过,那就随便输入观察回显的语句吧
出现了%的闭合方式,执行1%',报错,执行1%'#,有回显,余下和第一题相同
文件上传
1.任意文件上传
任意文件上传的话,就随便上传一个文件
因为可以随便上传文件,所以危险极大,可以上传一句话木马
2.js限制文件上传
先随便上传一个试试,得到一个这个
可以在此处对允许上传的文件类型直接进行修改或者使用burp suite抓包,改后缀名
欸,好像不能修改,那还是抓包吧,编写一个一句话木马,将一句话木马后缀写成可上传的,通过抓包进行修改
放包,就发现上传成功了,然后就可以连菜刀
3.mime限制文件上传
先试着上传,当上传文件位php文件时显示文件类型不对,搜索一下什么叫mime验证
MIME的作用 : 使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件。
资料:https://blog.csdn.net/h254532693/article/details/45128117
多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式每个MIME类型由两部分组成,前面是数据的大类别,例如声音 audio、图象 Image等,后面定义具体的种类。
Content-Type
MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。
资料:https://www.fujieace.com/penetration-test/file-upload-mime.html
http请求的头文件资料:https://www.cnblogs.com/klb561/p/10090540.html
由以上资料可得出,我们需要修改content-type来让php文件正常上传,那么就开始抓包吧
将箭头所指方向修改成image/jpeg,或者其他的可上传的类型,放包,文件成功上传
4.扩展名限制文件上传
资料:https://www.cnblogs.com/zhaijiahui/p/10789251.html#autoid-5-2-0
根据资料我们进行尝试,修改为muma.php.jpg以及muma.pHp都可
5.内容限制文件上传
首先,内容限制,很明显修改后缀的方式不适用了,对此有两种方法
*头文件欺骗 ---> 利用文件上传过程中图像大小及相关信息检测,通常我们会使用getimagesize()函数,此函数会返回一个数组,使用getimagesize()函数检测,会判断文件是否是一个有效的图片文件,如果不是则会报错,我们可以使用文件头欺骗来绕过
资料:https://blog.csdn.net/zhijiandedaima/article/details/81506666
*利用copy命令合成一个图片马
资料:https://blog.csdn.net/qq_35669659/article/details/100584579
随便找一张后缀为.jpg图片,然后写一个一句话木马的php文件
利用copy命令copy 1.jpg /b + muma.php /a 2.jpg
可以得到一个包含有php内容的jpg文件,可以成功上传