Web
Web_SINGIN
直接打开源代码,发现js文件
打开发现一串疑似flag的base64编码
解码得到flag
附赠彩蛋
渗透的本质
发现没有什么可以操作的用bp抓包看看
用Dashboad里的scan扫描网址后发现有一个robots.txt文件,这个文件正好是题目所给的附件
打开附件查看,发现里面的内容像是文件
用bp爆破一个个访问,发现可疑代码
代码审计:当id的值被url解密后为admin时得到flag
用bp对admin进行url加密(其他加密工具好像没法加密)
输入?id=%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65得到flag
好玩的PHP
代码审计:
当a=b且a的md5值不等于b的md5值时,当c=d的内容时得到flag
前一部分用数组绕过,后一部分将c赋值,用data伪协议绕过file_get_contents()函数
构造payload:
?a[]=1&b[]=2&c=hello&d=data://text/plain;base64,aGVsbG8=
查看源代码
简简单单的文件上传
上传一个一句话木马文件,发现需要将文件头改为image/haha且提交的是图片
打开bp修改
用蚁剑连接
查找flag
简简单单的sql
发现没有注入的地方用御剑扫描php,发现一个疑似登入界面
访问
Crypto
Crypto_Singin
打开文件后是一串unicode,解码后得到一串16进制编码
继续解码
得到一串html编码,输入到文本文件中改后缀为html,打开得到一串base64编码
解码得到flag
easy_rsa
直接用脚本
import gmpy2
from Crypto.Util.number import long_to_bytes
e = 59159
n = 703739435902178622788120837062252491867056043804038443493374414926110815100242619
c = 449590107303744450592771521828486744432324538211104865947743276969382998354463377
p= 782758164865345954251810941
q= 810971978554706690040814093
r= 1108609086364627583447802163
phi = (p - 1) * (q - 1) * (r - 1)
d = gmpy2.invert(e, phi)
m = gmpy2.powmod(c, d, n)
print(m)
print(long_to_bytes(m))
Rsa2
将文件后缀改为txt打开,发现一串疑似base64编码
发现一个enc猜测下面的应该是加密后的文本,上面的应该是公钥,所以我们需要找到私钥解密下面的文本,这时候我们就可以用rsatool工具生成private.pem文件(私钥文件)
n:25572000680139535995611501720832880791477922165939342981900803052781801299380515116746468338767634903543966903733806796606602206278399959935132433794098659859300196212479681357625729637405673432324426686371817007872620401911782200407165085213561959188129407530503934445657941975876616947807157374921539755157591354073652053446791467492853468641331291383821277151309959102082454909164831353055082841581194955483740168677333571647148118920605752176786316535817860771644086331929655259439187676703604894258185651165017526744816185992824404330229600417035596255176459265305168198215607187593109533971751842888237880624087
e:65537
先将n因式分解得到p和q
p:149930380465516707151079321019435489399072155945793735032334088844599773034021170995501688132861944516938448679935403246
643441984203770825485165700862168437691254557323938150173733659070945061763789341407547559935070758242521126066900261360
899379463301621378242061934281538210192731229473900396425739817670867
q:170559166199281256887953076784727902849936084815549184550874370897326056825177365209113910954088389779180174518262922176
726833811470419181874717574929460298509184863124213663255559781224744696195678069242025195218017449489985102637547369070
225979448169459840545693721393354651993457943927480894225788038743661
开始生成
python3 rsatool.py -f PEM -o private.pem -p 149930380465516707151079321019435489399072155945793735032334088844599773034021170995501688132861944516938448679935403246643441984203770825485165700862168437691254557323938150173733659070945061763789341407547559935070758242521126066900261360899379463301621378242061934281538210192731229473900396425739817670867 -q 170559166199281256887953076784727902849936084815549184550874370897326056825177365209113910954088389779180174518262922176726833811470419181874717574929460298509184863124213663255559781224744696195678069242025195218017449489985102637547369070225979448169459840545693721393354651993457943927480894225788038743661 -e 65537
#-f:指定输出密钥的格式为PEM格式。
#-o:指定输出文件的路径和名称,该文件将包含私钥。
把密文单独复制到新的enc文件用openssl进行base64解码并输出flag.enc文件
openssl enc -base64 -d -in enc -out flag.enc
用openssl解密
openssl pkeyutl -decrypt -in flag.enc -inkey private.pem -out flag.txt
#openssl3.0及以上版本用pkeyutl,以下用rsautl
注意:
改变private文件权限为读写
将文件放在同一目录下
最终得到flag
Pwn
pwn_Sing
直接nc 网址,然后ls查看目录,cat flag.txt得到flag
Misc
easy_singin
直接解码